package xxx;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class TestRef02
{
public static void main(String[] args)
throws Exception
{
//通过反射创建对象
Class c= Person.class;
// Person p = new Person();
//c.getConstructors();
// c.getDeclaredConstructors();
//取某个构造方法
// Constructor<Person> cons = c.getConstructor(String.class);
//创建对象
// Person p = cons.newInstance("addr....");
// System.out.println(p.getAddr());
//取某个构造方法
// Constructor<Person> cons = c.getConstructor();
// //创建对象
// Person p = cons.newInstance();
//
// System.out.println(p.getAddr());
//NoSuchMethodException
// Constructor<Person> cons = c.getConstructor(boolean.class,String.class);
//
// Person p = cons.newInstance(false,"张三");
//
// System.out.println(p.getName()+","+p.isSex());
//IllegalAccessException
//Constructor<Person> cons = c.getDeclaredConstructor(boolean.class,String.class);
//破坏封装
// cons.setAccessible(true);
// Person p = cons.newInstance(false,"张三");
// System.out.println(p.getName()+","+p.isSex());
//Class 对象 c.newInstance() 默认调用无参构造方法
// 可以用来创建对象
Person p = (Person)c.newInstance();
System.out.println(p);
}
}