java 利用反射例項化類物件
阿新 • • 發佈:2019-01-28
package com.zhiru; /* * java 使用反射例項化一個類物件 * 第一種方式:建立類類物件,呼叫類類物件的newInatance方法獲取要例項化的類的物件,然後呼叫物件的setter方法設定屬性。 * 第二種方式:使用類類物件的getConatructor方法構造Constructor類物件,然後用構造器類物件呼叫newIntance方法建立要例項化的類F物件。 */ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; class Person { private String name; private int age; public Person() { super(); } public Person(String name, int age) { this.name = name; this.age = age; } public String toString() { return "name:" + name + "---age:" + age; } } public class BuildObject { public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException { // TODO Auto-generated method stub // 獲取Class類物件 Class<Person> cls = Person.class; // 呼叫newInstance方法建立Person類物件 Person p = cls.newInstance(); System.out.println(p); // 使用構造器類建立Person類物件 Constructor<Person> con = cls.getConstructor(String.class, int.class); Person person = con.newInstance("lili", 12); System.out.println(person); } }/* * name:null---age:0 name:lili---age:12 */