Adakah Penetapan Kelas mengikut Nama Mungkin di Java?
Apabila berurusan dengan instantiasi kelas, keadaan mungkin timbul di mana nama kelas hanya dikenali sebagai seutas tali. Untuk menangani perkara ini, Java menawarkan dua pendekatan untuk menyelesaikan tugasan ini.
Kaedah 1: Menghidupkan dengan Pembina Tanpa Arg
Untuk kelas dengan pembina tanpa hujah, Java membenarkan penciptaan objek menggunakan kaedah Class.forName() untuk mendapatkan semula objek kelas dan kaedah newInstance() untuk mencipta instance.
Class<?> clazz = Class.forName("java.util.Date"); Object date = clazz.newInstance();
Kaedah 2: Mengendalikan Kelas dengan atau tanpa No-Arg Constructor
Pendekatan yang lebih komprehensif yang merangkumi semua senario, termasuk kelas tanpa sebarang hujah pembina, melibatkan pertanyaan objek kelas untuk pembinanya dan menggunakan newInstance() pada ia.
Class<?> clazz = Class.forName("com.foo.MyClass"); Constructor<?> constructor = clazz.getConstructor(String.class, Integer.class); Object instance = constructor.newInstance("stringparam", 42);
Kedua-dua kaedah menggunakan keupayaan pantulan Java. Walau bagaimanapun, adalah penting untuk mengendalikan pengecualian yang mungkin timbul semasa proses ini, seperti:
Atas ialah kandungan terperinci Bolehkah Java Menghasilkan Kelas Dengan Hanya Menggunakan Nama Mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!