Rumah > Java > javaTutorial > Bolehkah Instalasi Kelas Dinamik Mengendalikan Parameter Pembina?

Bolehkah Instalasi Kelas Dinamik Mengendalikan Parameter Pembina?

Mary-Kate Olsen
Lepaskan: 2024-12-15 04:04:13
asal
882 orang telah melayarinya

Can Dynamic Class Instantiation Handle Constructor Parameters?

Penyataan Kelas Dinamik dengan Parameter Pembina

Dalam pengaturcaraan berorientasikan objek, kadangkala kita mungkin menghadapi situasi di mana kita perlu mencipta contoh a kelas secara dinamik, tanpa mengetahui namanya terlebih dahulu. Ini boleh berguna dalam beberapa senario, seperti pemuatan kelas dinamik, suntikan kebergantungan dan teknik pantulan lanjutan.

Satu senario sedemikian melibatkan mencipta contoh kelas tertentu diberi nama kelasnya sebagai rentetan dan menghantar parameter kepada pembinanya. Ini membolehkan kami membuat instantiate kelas secara dinamik berdasarkan konfigurasi atau maklumat masa jalan lain.

Persoalannya ialah, "Bolehkah kita mencipta contoh kelas tertentu yang diberi nama kelas (dinamik) dan menghantar argumen kepada pembinanya?"

Jawapannya ya, dan begini caranya:

Class<?> clazz = Class.forName(className);
Constructor<?> ctor = clazz.getConstructor(String.class);
Object object = ctor.newInstance(new Object[] { ctorArgument });
Salin selepas log masuk

Coretan kod ini menyediakan contoh asas dinamik instansiasi kelas. Ia menggunakan kaedah Class.forName() untuk memuatkan kelas secara dinamik berdasarkan nama kelas yang disediakan, yang sepatutnya termasuk pakej penuh dan laluan kelas.

Selepas memuatkan kelas, ia mendapatkan semula pembina yang dikehendaki menggunakan getConstructor () kaedah, di mana jenis parameter mesti sepadan dengan hujah pembina. Dalam kes ini, kami menganggap argumen rentetan tunggal.

Akhir sekali, kaedah newInstance() mengambil tatasusunan objek untuk membuat instantiate kelas, menghantar argumen yang disediakan kepada pembina.

Perhatikan bahawa contoh ini berfungsi untuk parameter rentetan tunggal. Anda boleh mengubah suainya untuk menyokong berbilang argumen dengan menghantar tatasusunan jenis objek sebagai argumen kepada kaedah getConstructor().

Untuk kelas bersarang, gunakan tanda dolar untuk menunjukkan hierarki bersarang dalam rentetan nama kelas, seperti ditunjukkan dalam contoh yang disediakan.

Atas ialah kandungan terperinci Bolehkah Instalasi Kelas Dinamik Mengendalikan Parameter Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan