Jawaban:
Saat menjalankan kode Anda, Java runtime melakukan hal berikut:
Dengan kata lain, null dapat dilemparkan ke Integer tanpa masalah, tetapi objek integer nol tidak dapat dikonversi ke nilai tipe int.
EDIT
Saya punya pertanyaan terkait beberapa waktu lalu di Stack Overflow, lihat di sini .
Java berhasil memberikan null ke referensi Integer yang tidak merujuk objek.
Tidak apa-apa karena tidak dibuktikan kebenarannya adalah keadaan untuk referensi.
Itu adalah panggilan metode metode objek yang tidak ada yang tidak dapat dilakukan.
Melakukan pemeran (Integer)nullsama dengan mendeklarasikan variabel Integer dan kemudian gagal menetapkannya objek instance integer baru (atau yang sudah ada).
Untuk membuka kotak a Integerke dalam intyaitu int i = new Integer(15);, isebenarnya sama dengan new Integer(15).intValue() i = (Integer) o; di mana Object o = 15sama dengan o = Integer.valueOf(15);tetapi i = null; melempar NullPointerExceptionkarena ikemudian sama dengan null.intValue()melempar NullPointerException.
valueOf()metode pabrik daripada membuat contoh baru untuk tinju.