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
字段。通过反射读写字段是一种非常规方法,它会破坏对象的封装。****