1. 程式人生 > >java 利用反射例項化類物件

java 利用反射例項化類物件

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
 */