Tôi có một phương pháp mà nhận được một long
loại parameher, và tôi cố gắng gọi nó đi qua 1
:Java: tại sao loại nguyên thủy "dài" không chấp nhận một số đơn giản?
contato.setId(1);
Và tôi nhận được:
The method setId(Long) in the type Contato is not applicable for the arguments (int).
Nhưng, không phải là một số 1
dài cũng? Không phải là nó nằm trong phạm vi dài ??
PS: Chỉ cần nói, tôi đã giải quyết được vấn đề với mã này:
Integer y = 1;
long x = y.longValue();
contato.setId(x);
Nó chỉ là một câu hỏi didatic.
Nếu phương pháp này chấp nhận một chút-l 'long', nó muốn làm việc tốt; nó chỉ là int literals không thể autobox trực tiếp đến 'Long'. –
có thể trùng lặp của [Làm thế nào một phao biến thành một đôi ở đây?] (Http://stackoverflow.com/q/3680879/217324) - câu trả lời của tôi có giải thích các quyết định đằng sau giới hạn autoboxing được đề cập trong bình luận của Louis –