Situasi di mana kelas dalaman tanpa nama tidak sesuai untuk digunakan termasuk: perlu mengakses ahli persendirian, memerlukan berbilang contoh, perlu mewarisi, perlu mengakses jenis generik
Senario di mana kelas dalaman tanpa nama Java tidak sesuai untuk digunakan
Kelas dalaman tanpa nama ialah Cara mudah untuk mencipta kelas dalaman yang boleh digunakan untuk mencipta kelas dengan cepat yang melaksanakan antara muka atau melanjutkan kelas apabila diperlukan. Walau bagaimanapun, terdapat beberapa situasi yang tidak sesuai untuk menggunakan kelas dalaman tanpa nama:
1 Perlu mengakses ahli persendirian kelas luar
kelas dalaman tanpa nama tidak boleh mengakses ahli persendirian kelas luar, yang mungkin mengehadkan. penggunaannya dalam beberapa situasi berguna. Contohnya, jika anda perlu mengakses medan peribadi atau kaedah kelas luar daripada kelas dalaman tanpa nama, anda mesti mempromosikan hak akses ahli ini kepada dilindungi atau awam, yang mungkin melanggar prinsip pengkapsulan.
2. Berbilang tika diperlukan
Kelas dalaman tanpa nama biasanya adalah tunggal, yang bermaksud bahawa hanya satu tika kelas boleh dibuat. Ini akan menjadi had jika berbilang contoh kelas dalaman tanpa nama perlu dibuat.
3. Warisan diperlukan
Kelas dalaman tanpa nama tidak boleh mewarisi daripada kelas lain, yang mungkin mengehadkan fleksibiliti mereka dalam situasi tertentu. Contohnya, jika anda perlu mencipta kelas dalaman tanpa nama yang mewarisi daripada kelas lain, ini tidak akan dapat dilakukan.
4. Perlu mengakses jenis generik
Kelas dalaman tanpa nama tidak boleh mengakses parameter jenis generik kelas luar. Jika anda perlu mengakses parameter jenis generik kelas luar daripada kelas dalaman tanpa nama, anda mesti menyatakan secara eksplisit parameter ini sebagai parameter jenis.
Kes Praktikal:
Pertimbangkan contoh berikut:
// 外部类 public class OuterClass { private int privateField; public void doSomething() { // 创建匿名内部类 Runnable runnable = new Runnable() { @Override public void run() { // 无法访问 privateField System.out.println(privateField); } }; } }
Dalam kes ini, kelas dalaman tanpa nama tidak boleh mengakses medan peribadi kelas luar privateField
, jadi kelas dalaman tanpa nama tidak sesuai digunakan.
Alternatif yang Dicadangkan:
Dalam kes di atas, anda boleh menggunakan kelas dalaman yang dinamakan atau kelas dalaman statik sebagai alternatif kepada kelas dalaman tanpa nama. Ini akan membenarkan akses kepada ahli persendirian kelas luar dan keupayaan untuk mencipta berbilang kejadian.
rreeeeAtas ialah kandungan terperinci Dalam senario apakah kelas dalaman tanpa nama Java tidak sesuai untuk digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!