Yanıtlar:
Kodunuzu çalıştırırken, Java çalışma zamanı aşağıdakileri yapar:
Başka bir deyişle, null problemsiz bir şekilde Integer'a alınabilir, fakat null bir tamsayı nesnesi int türüne dönüştürülemez.
DÜZENLE
Bir süre önce Stack Overflow'ta ilgili bir sorum vardı, buraya bakın .
Java başarılı bir şekilde, hiçbir nesneye başvuruda bulunmayan bir Tamsayı başvurusunu atıyor.
Sorun değil çünkü dayanıksız olmak referans için geçerli bir durum.
Gerçekleştirilemeyen mevcut olmayan bir nesnenin yönteminin çağrılmasıdır.
Oyunculuğu gerçekleştirmek (Integer)null
bir Tamsayı değişkeni bildirmekle aynıdır ve daha sonra ona yeni (veya zaten var olan) bir Tamsayı nesne örneği atamakta başarısız olur.
Bir Unbox için Integer
bir içine int
yani içinde int i = new Integer(15);
, i
aslında eşittir new Integer(15).intValue()
i = (Integer) o
; nerede Object o = 15
aynı o = Integer.valueOf(15);
ama i = null
; atar NullPointerException
çünkü i
o zaman null.intValue()
a atar NullPointerException
.
valueOf()
boks için yeni örnekler oluşturmak yerine fabrika yöntemlerini kullanıyor .