publicstaticvoidmain(String[] args)throwsClassNotFoundException,InstantiationException,IllegalAccessException,NoSuchMethodException,InvocationTargetException,NoSuchFieldException{User user =null;//获取class对象Class clazz =Class.forName("com.zixi.User");
user =(User) clazz.newInstance();//无参构造 创建对象 实际上就是Field age = clazz.getDeclaredField("age");//注意如果是私有类型 就无法获取要先System.out.println(age.get(user));System.out.println(age.getType());//获取类型//获取nameField name = clazz.getDeclaredField("name");//那么是私有的 所以的要打开权限否则无法获取到值
name.setAccessible(true);System.out.println(name.get(user));System.out.println(name.getType());//获取类型//通过无参构造 创建对象
user =(User) clazz.newInstance();
user.say();//通过构造器创造对象//创建构造Constructor dc = clazz.getDeclaredConstructor(String.class,int.class);
user =(User) dc.newInstance("name",12);
user.say();//反射出一个方法 say 为user存在的方法Method say = clazz.getDeclaredMethod("say");//执行方法
say.invoke(user);}