package nd.reflectdemo;
public class DemoBean {
public DemoBean(int id,int data){
System.out.println(id);
System.out.println(data);
}
}
package nd.reflectdemo;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class DemoTest {
public static void main(String args[]) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException{
Class cls = Class.forName("nd.reflectdemo.DemoBean");//想要反射DemoBean 这个类
Class[] par = new Class[]{int.class,int.class};//导入这个类所需要的参数,取所有参数的class
Constructor con = cls.getConstructor(par);//指定这个对象的某一个带参数的构造器
Object[] objs = new Object[]{12,23};//用Object接受所有数据类型和对象 ,这样可以包容多种不同的数据类型
Object obj = null;//声明将要产生的对象
obj = con.newInstance(objs);//调用带参数的构造器进行实例化
DemoBean demo = (DemoBean)obj;//强制转型成要用到的数据类型,这里一般是接口类型。
}
}