Java反射机制(reflection)与内省机制(introspector)

一、Java反射机制

是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法名,并能得到它们的值。

1、获取Class对象

Java反射机制(reflection)与内省机制(introspector)

输出结果:

Java反射机制(reflection)与内省机制(introspector)

2、获取属性名和属性值

Java反射机制(reflection)与内省机制(introspector)

Java反射机制(reflection)与内省机制(introspector)

Java反射机制(reflection)与内省机制(introspector)

Java反射机制(reflection)与内省机制(introspector)

3、获取方法名和方法的返回值

Java反射机制(reflection)与内省机制(introspector)

Java反射机制(reflection)与内省机制(introspector)

 

二、Java内省机制

内省是Java语言对Bean类属性、事件的一种缺省处理方法。使用默认规则setName/getName或isTrue/setTrue来访问属性

1、获取对象特定属性的值

直接通过属性的描述器java.beans.PropertyDescriptor类,来访问属性的getter/setter方法

Java反射机制(reflection)与内省机制(introspector)

2、获取对象的所有属性值

通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过属性描述器就可以获取某个属性对应的getter/setter方法,然后通过反射机制调用这些方法得到返回值

Java反射机制(reflection)与内省机制(introspector)

Java反射机制(reflection)与内省机制(introspector)