Chỉ cần cố gắng tìm hiểu auto-boxing, mà tôi làm ngoài một điều:lớp Wrapper - tại sao literals số nguyên không cho Long nhưng làm việc cho bất cứ điều gì nhỏ
Short s = 250;
Long l = 250;
Việc chuyển nhượng để Long l
thất bại. Điều này, tôi mong đợi, là vì bạn không thể mở rộng hộp sau đó (nghĩa là bạn không thể mở rộng giá trị int
250
thành long
và sau đó hộp nó không thể thực hiện).
Tuy nhiên, việc gán cho Short s
hoạt động. Điều gì đang xảy ra để làm cho tiền phạt này? Giả định của tôi là nó vẫn còn làm boxing và một số loại chuyển đổi. Nhưng nếu nó là một trường hợp của nó biết 250
phù hợp với một short
, tại sao nó không biết rằng 250
sẽ phù hợp với một long
?
Tự động đấm bốc là điều ác [Chỉ cần một ý kiến]. Trong các dự án tư nhân của tôi và tại công ty tôi làm việc tại chúng tôi xử lý auto-boxing là lỗi để tránh bất kỳ sự nhầm lẫn nào. – MrSmith42
làm thế nào để nó 'thất bại cho Long'? – Archer
Trong sự tò mò, điều gì sẽ xảy ra với Ngắn khi chữ của bạn là 250L? (Offhand tôi biết rằng chỉ định một long literal, nhưng tôi không chắc chắn nếu có một tương ứng rõ ràng ngắn literal) – Charlie