JAVA 反射
反射是为了解决运行期,对某个对象一无所知的情况下,调用其方法,JVM为每一个加载的class创建一个Class类型的实例,并关联起来。
通过Class实例获取class信息的方法称为反射(Reflection)
1. 访问字段
Java的反射API提供的
Field类封装了字段的所有信息:通过
Class实例的方法可以获取Field实例:getField(),getFields(),getDeclaredField(),getDeclaredFields();通过Field实例可以获取字段信息:
getName(),getType(),getModifiers();通过Field实例可以读取或设置某个对象的字段,如果存在访问限制,要首先调用
setAccessible(true)来访问非public字段。通过反射读写字段是一种非常规方法,它会破坏对象的封装。****