反射
.class -> .java ,访问java对象中的属性,方法,构造方法
获取反射中的class对象方式
一、静态获取
Class clz = Class.forName("类的全路径名");
二、.class 类名.class
Class clz = String.class;
三、 类对象.getClass()
String str = new String("参");
Class cla = str.getClass();
获取反射对象后,获取类对象
空参默认构造
Class cla = String.class;
Object object = cla.newInstance();
通过 Constructor 对象的 newInstance() 方法
Constructor constructor = String.getConstructor();
Object object = constructor.newInstance();
//此种方式可获取有参构造 constructor.newInstance("参数1","参数2")
获取类的属性
获取属性(不包含私有属性)
Class cla = Entity.class;
Field[] fields = clz.getFields(); //获取属性集合
Field field = clz.getField(""); //获取单个属性
获取属性 (包含私有属性)
Class cla = Entity.class;
Field[] fields = clz.getDeclaredFields(); //获取属性集合
Field field = clz.getDeclaredField(""); //获取单个属性
访问类方法
调用类方法(不包含私有方法)
//获取方法集合
Method[] methods = cla.getMethods();
//获取某一个
Method method = cla.getMethod("方法名","形参" ...);
//调用方法 invoke
method.invoke(object,"参数");