6
可能重複:
Java: Long result = -1: cannot convert from int to long爲什麼Java不支持強制和自動裝箱?
例如Integer foo = 4
和Long foo = 4L
都編譯,但Long foo = 4
沒有。這是否有理由?
可能重複:
Java: Long result = -1: cannot convert from int to long爲什麼Java不支持強制和自動裝箱?
例如Integer foo = 4
和Long foo = 4L
都編譯,但Long foo = 4
沒有。這是否有理由?
Long foo = 4;
指:分配的值4的int
到Long
類的對象。它會嘗試使用自動裝箱功能來執行此操作並且失敗,因爲自動裝箱功能僅適用於適當的原語。它可以固定在兩個方面:
Long foo = (long) 4;
Long foo = 4L;
在第一種情況下,你投的 4.在第二,你提供長時間。
要回答這個問題:Java不支持自動轉換,並且很嚴格的鍵入,這可能是爲什麼它不自動支持它。
好問題。我想知道這是否會造成一些含糊之處。 (+1) – NPE
技術上,'Long foo = 4'不能在編譯時進行評估。 –
混淆了自動裝箱的轉換。 – Bevor