Dalam Java, kedua-dua Class.forName() dan Class.forName().newInstance() memainkan peranan penting dalam pemuatan kelas dinamik. Walau bagaimanapun, ia mempunyai tujuan yang berbeza.
Kaedah Class.forName() mengambil nama kelas yang layak sepenuhnya sebagai rentetan dan mengembalikan objek Kelas yang dikaitkan dengan kelas tersebut. Ia melakukan ini dengan menggunakan pemuat kelas untuk mencari fail kelas dan membaca kandungannya. Class.forName() tidak membuat seketika kelas. Ia hanya menyediakan akses kepada metadata dan maklumatnya.
Kaedah Class.forName().newInstance() pula, mencipta contoh baharu kelas yang diwakili oleh objek Kelas dikembalikan oleh Class.forName(). Ia melakukan ini dengan menggunakan pembina lalai kelas.
Mari kita pertimbangkan contoh untuk menggambarkan perbezaan:
package test; public class Demo { public Demo() { System.out.println("Hi!"); } public static void main(String[] args) throws Exception { Class clazz = Class.forName("test.Demo"); Demo demo = (Demo) clazz.newInstance(); } }
Dalam contoh ini:
Perbezaan utama antara Class.forName() dan Class.forName() .newInstance() ialah Class.forName() hanya memuatkan kelas, manakala Class.forName().newInstance() bukan sahaja memuatkan kelas tetapi juga mencipta instance kelas tersebut.
Class.forName() dan Class.forName().newInstance() biasanya digunakan dalam senario di mana pemuatan kelas dinamik diperlukan. Contohnya termasuk:
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara `Class.forName()` dan `Class.forName().newInstance()` dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!