文章目录
内省
基于反射 , java所提供的一套应用到JavaBean的API
一个定义在包中的类 ,
- 拥有无参构造器
- 所有属性私有,
- 所有属性提供get/set方法
- 实现了序列化接口
这种类, 我们称其为 bean类 . Java提供了一套java.beans包的api , 对于反射的操作, 进行了封装 !
相比较于反射 我们可以更加便捷的拿到class类的set和get方法。
//通过内省的方式获得javabean的set、get方法
public class Demo06 {
public static void main(String[] args) throws IntrospectionException {
Class c = Student.class;
BeanInfo bi = Introspector.getBeanInfo(c);
PropertyDescriptor[] pds = bi.getPropertyDescriptors();
for (PropertyDescriptor pd : pds) {
Method get = pd.getReadMethod();
Method set = pd.getWriteMethod();
System.out.println(get);
System.out.println(set);
System.out.println(pd.getName());
System.out.println(pd.getPropertyType());
}
}
}
注意:如果类中有boolean类型的属性 拿到的get方法是isFlag而不是getFlag;