Anda harus berurusan dengan auto-boxing java.
Mari kita ambil kodenya
tes kelas publik
{
public static void main (String [] args)
{
int i = 3;
Objek o = i;
kembali;
}
}
Anda mendapatkan kelas test.class dan
tes javap -c memungkinkan Anda memeriksa bytecode yang dihasilkan.
Disusun dari "test.java"
pengujian kelas publik memperluas java.lang.Object {
tes publik ();
Kode:
0: aload_0
1: invokespecial # 1; // Metode java / lang / Object. "" :() V
4: kembali
public static void main (java.lang.String []);
Kode:
0: iconst_3
1: istore_1
2: iload_1
3: invokestatic # 2; // Metode java / lang / Integer.valueOf: (I) Ljava / lang / Integer;
6: astore_2
7: kembali
}
Seperti yang Anda lihat, compiler java ditambahkan
invokestatic # 2; // Metode java / lang / Integer.valueOf: (I) Ljava / lang / Integer;
untuk membuat Integer baru dari int Anda dan kemudian menyimpan
Objek baru itu di o melalui astore_2
int.class.isPrimitive()
hasiltrue
;Integer.class.isPrimitive()
hasilfalse
.