Olası Çoğalt: Örneğin
Integer foo = 4
için
Java: Long result = -1: cannot convert from int to longJava neden baskı ve otomatik kutulamayı desteklemiyor?
ve Long foo = 4L
hem derleme, ama Long foo = 4
yapmaz. Bunun için bir mantık var mı?
Olası Çoğalt: Örneğin
Integer foo = 4
için
Java: Long result = -1: cannot convert from int to longJava neden baskı ve otomatik kutulamayı desteklemiyor?
ve Long foo = 4L
hem derleme, ama Long foo = 4
yapmaz. Bunun için bir mantık var mı?
Long foo = 4;
şu anlama gelir: sınıf Long
bir nesneye değeri 4 bir int
verin. Otomatik kutulama, bunu yapmak ve başarısız olmak için kullanmayı deneyecektir, çünkü otomatik kutulama yalnızca uygun ilkel için uygulanabilir. Bu iki şekilde düzeltilebilir:
Long foo = (long) 4;
Long foo = 4L;
ilk durumda İkincisinde int
4 4. long
artığını, uzun sağlarlar.
Soruyu yanıtlamak için: Java, otomatik döküm özelliğini desteklemez ve yazım için çok katıdır; bu da muhtemelen otomatik olarak desteklemiyordur.
İyi soru. Bunun bazı belirsizliklere yol açıp açmayacağını merak ediyorum. (+1) – NPE
Teknik olarak 'Long foo = 4' derleme zamanında değerlendirilemez. –
Dönüştürmeyi otomatik kutulamayla karıştırırsınız. – Bevor