Java 提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射
反射机制是如今很多流行框架的实现基础,其中包括 Spring、Hibernate 等
原理性的问题不是本文的重点,接下来让我们在实例中学习这套精彩的机制
得到某个对象的属性 public Object getProperty(Object owner, String fieldName) throws Exception { Class ownerClass = owner
getClass(); Field field = ownerClass
getField(fieldName); Object property = field
get(owner); return property; } Class ownerClass = owner
getClass():得到该对象的 Class
Field field = ownerClass
getField(fieldName):通过 Class 得到类声明的属性
Object property = field
get(owner):通过对象得到该属性的实例,如果这个属性是非公有的,这里会报IllegalAccessException
得到某个类的静态属性 public Object getStaticProperty(String className, String fieldName) throws Exception { Class ownerClass = Class
forName(className); Field field = ownerClass
getField(fieldName); Object property = field
get(ownerClass); return property