什么是Java反射机制?
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能就是反射。
反射主要的4个API,Class类、Constructor类、Field类、Method类。见下图。

Class类,用于表示一个类的字节码文件(.class),有三种方法得到某个class文件对应的Class对象:
类名.class
对象.getClass()
Class.forName("包名.类名") (常用的方法)
Field类,代表某个类中的一个成员变量,并提供动态的访问权限,使用方法如下:
得到所有的成员变量
Field[] fields=c.getFields(); //获取所有公共属性,包含父类继承
Field[] fields=c.getDeclaredFields(); //获取所有属性,包含私有属性
2. 得到指定的成员变量
Field name=c.getField("name");
Field name=c. getDeclaredField("name");
对于私有属性,需要设置访问权限才能进行设置,field.setAccessible(true)。
Field变量值的读取和设置方法是field.get(obj),field.set(obj,value)。
Method类,代表某个类中的一个成员方法,使用方法如下:
获得所有方法
getDeclaredMethods()
getMethods()
获得指定方法
getDeclaredMethods(String name,Class<?>... parameterTypes)
getMethods(String name,Class<?>... parameterTypes)
3. 执行方法
invoke(Object obj,Object... args)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69917450/viewspace-2670810/ ,如需转载,请注明出处,否则将追究法律责任。