Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menghidupkan Kelas secara Dinamik di Java Menggunakan Nama dan Parameter Pembinanya?

Bagaimanakah Saya Boleh Menghidupkan Kelas secara Dinamik di Java Menggunakan Nama dan Parameter Pembinanya?

Patricia Arquette
Lepaskan: 2024-12-25 03:38:24
asal
798 orang telah melayarinya

How Can I Dynamically Instantiate a Class in Java Using Its Name and Constructor Parameters?

Membuat Contoh Secara Dinamik Menggunakan Nama Kelas dan Parameter Pembina

Dalam senario tertentu, anda mungkin menghadapi keperluan untuk mencipta tika kelas secara dinamik diberi nama kelasnya dan menyediakan parameter kepada pembinanya. Ini boleh dicapai menggunakan pendekatan berikut:

  1. Dapatkan objek Kelas untuk nama kelas yang diberikan:

    • Gunakan Kelas. kaedah forName() untuk memuatkan kelas berdasarkan nama yang layak sepenuhnya, termasuk ruang nama.
  2. Dapatkan semula pembina kelas:

    • Ajak getConstructor() pada objek Kelas untuk mendapatkan pembina yang sepadan dengan nombor dan jenis yang dikehendaki parameter.
  3. Buat contoh kelas menggunakan pembina:

    • Panggil newInstance() pada pembina, melepasi parameter yang ditentukan sebagai tatasusunan objek.

Berikut ialah contoh untuk menggambarkan proses ini:

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

Perhatikan bahawa pendekatan ini memerlukan penyediaan nama kelas yang layak sepenuhnya, termasuk mana-mana bersarang kelas dipisahkan oleh tanda dolar ($). Sebagai contoh, untuk membuat contoh kelas bersarang, anda akan menggunakan nama kelas seperti "foo.Outer$Nested".

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghidupkan Kelas secara Dinamik di Java Menggunakan Nama dan Parameter Pembinanya?. 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