反射方式创建对象
-
用无参构造创建对象
Class.newInstance();//常用
-
有参构造创建对象
Class对象.getConstructor(newClass[]{若干参数的类类型});
比如:
User user=new User(“张三”,”zs”);
User.getClass().getConstructor(new Class[]{String.class,String.class}).newInstance(“张三”,”zs”);
-反射方式获取Field中的信息
-
获取当前类及长辈类的public Field
Field[] field=Class对象.getField();
-
获取当前类中所有的属性(公有和私有)
Field[] fields=Class对象.getDeclaredFields();
-
获取当前类及长辈类中的指定的公有属性
Filed field=Class.getField(String filedName);
-
获取当前类中指定的属性
Field field=Class对象.getDeclaredField(String fieldName);
-
通过反射设定Field属性的值
Field对象.setObject(Object obj,Object value);
如果Field是私有的,必须先执行:Field对象.setAccessable(true);
-
通过反射动态获取Field的值
Object value=Field对象.get(Object obj);
如果Field是私有的,必须先执行: Field对象.setAccessable(true);
-反射方式获取Method方法的信息
1.获取当前类及长辈类中的公有方法
Method[] methods=Class对象.getMethods();
2.获取当前类中的所有方法
Method[] methods=Class对象.getDeclaredMethods();
-
获取当前类及长辈类中指定的公有方法
Method method=Class对象.getMethod(String methodName,new Class[]{methodName的参数的类类型})
-
获取当前类中指定的方法