1、兩種產生方式
使用Class物件的newInstance()方法製作此Class對應類別實例(此方法要求該Class對應類別有預設結構器)。
使用Class物件取得指定的Constructor對象,然後呼叫Constructor物件的newInstance()方法來製作該Class物件對應類別的範例(這種方法可以選擇指定的結構器製作範例)。
2、實例
class Person { private String name; private Integer age; public Person() { this.name = "system"; this.age = 99; } public Person(String name, Integer age) { this.name = name; this.age = age; } public Integer getAge() { return age; } public String getName() { return name; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } } public class Test { public static void main(String[] args) throws Exception { Class<Person> pClass = Person.class; // 通过第1种方式创建对象 Person p = pClass.newInstance(); System.out.println(p); // 通过第2种方式创建对象 Constructor<Person> constructor = pClass.getDeclaredConstructor( String.class, Integer.class); Person person2 = constructor.newInstance("zhangsan",20); System.out.println(person2); } }
可以透過包含鍵值對的設定檔建立物件。讀取設定檔中的鍵值對,程式可以用鍵值對建立一個「字串-物件」的物件池,然後透過字串存取這些物件。
以上是java反射生成物件實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!