在Class类里面提供方法取得构造
·取得全部构造:public Constructor<?>[ ] getConstructor( )throws SecurityException;
·取得指定构造:public Constructor<?> getConstructor(Class<?> parameterTypes);
以上两个方法返回“java.lang.reflect.Constructor”类对象。在这个类中提供有一个明确的传递有参构造内容实例化对象方法:
public T newInstance(Object...initargs)throws InstantiationException, IllegalAcessException,
InvocationsTagetException
范例1:明确调用类中有参构造方法
import java.lang.reflect.Constructor;
class Book {
private String title;
private double price;
public Book(String title, double price) {
this.title = title;
this.price = price;
}
@Override
public String toString() {
return "书名:《" + this.title + "》,价格:" + this.price + "元。";
}
}
public class Demo {
public static void main(String[] args) throws Exception {
Class<?> cla = Class.forName("ikvDemo.Book");
Constructor<?> con = cla.getConstructor(String.class, double.class);
Object obj = con.newInstance("Java从入门到精通", 77.7);
System.out.println(obj);
}
}