Rumah > Soal Jawab > teks badan
1 2 3 4 5 6 |
|
1 2 3 4 5 |
|
请问这个语法是来自 Java 几?他的原理又是什么?一个大括号我知道是匿名内部类,但是里面的大括号不知道是什么意思??
PHPz2017-04-18 09:24:24
Sintaks ini dipanggil blok permulaan dinamik Java.
Ia ialah coretan kod yang dilampirkan dalam kurungan kerinting dalam kelas dan dipanggil secara automatik apabila kelas itu dibuat seketika.
Contohnya:
1 2 3 |
|
Kemudian apabila new Person()
dipanggil, 123
akan dicetak.
Bagi kod dalam soalan anda, blok permulaan dinamik hanya diletakkan dalam kelas tanpa nama, jadi ia kelihatan agak pelik dan sukar difahami. Walau bagaimanapun, selepas semua, kelas tanpa nama juga adalah kelas, jadi mereka sah. Hasilnya ialah apabila kelas tanpa nama dijadikan instantiated, kod itu dilaksanakan dan beberapa elemen dimasukkan ke dalam koleksi, yang bersamaan dengan memulakan koleksi.
Mengenai versi Java yang mana ia disokong, saya tidak ingat dengan jelas, tetapi dianggarkan ia telah disokong untuk masa yang lama, dan ia harus disokong sejak Java 5.
Akhir sekali, memulakan koleksi dengan cara ini kelihatan seperti ilmu hitam.
Selain itu, anda juga boleh menyemak Blok permulaan statik untuk membandingkan perbezaannya.
巴扎黑2017-04-18 09:24:24
Pendakap kerinting di dalam
ialah blok permulaan, yang akan dilaksanakan antara panggilan pembina dalam
baharu黄舟2017-04-18 09:24:24
Kurung kerinting bukan kelas dalaman tanpa nama, tetapi blok kod pembinaan, yang nampaknya dilaksanakan sebelum kaedah pembinaan (saya tidak ingat dengan jelasnya sebagai perkara yang sama dengan kaedah pembinaan).