* 敏于事而慎于言。(孔子)*
//获得字节码文件对象
Class c = Class.forName("reflect.Demo");
//获取到带参数的构造对象
Constructor d = c.getConstructor(int.class);
//通过Class里的newInstance() 创建对象
//Demo d = (Demo)c.newInstance();
Demo dd= (Demo) d.newInstance(1);
//获取到方法的对象
Method m = c.getMethod("print",String.class);
Method m1 = c.getDeclaredMethod("show",int.class);
//调用即可
m.invoke(dd,"hh");
//私有的设置显示即可
m1.setAccessible(true);
m1.invoke(dd, 1);
}
}
class Demo {
public Demo(){}
public Demo(int x) {
}
private void show(int a) {
System.out.println(1111);
}
public void print(String str ){
System.out.println("Hello "+str);
}
}
反射中的Class类中newIntance()方法和constructor 中newIntance()方法的区别:
Class中的newIntance()方法只能生成无参的公共构造对象
constructor 中newIntance()方法什么都可以搞.私有,带参,无参.