内省(Introspecter)用来操作JavaBean属性
JavaBean:用来封装数据的Java类(一般要重写toString方法)
属性:对外提供getter或setter方法的属性(field) 因为Object是所有类的基类,所以每个类都有一个class属性 (getClass方法)
核心类和接口
Introspecter
方法: staticBeanInfo getBeanInfo(Class beanclass)
static BeanInfo getBeanInfo(Classbeanclass ,Class stopClass)
*stopClass排除例如父类Object中的属性
PropertyDescriptor
PropertyDescriptor[] pds=beaninfo.getPropertyDescriptors();
StringpropertyName=pds[0].getName();
pds[0].getPropertyType();
Method
Method m1= pds[0].getWriteMethod();
Method m2=pds[0].getReadMethod();
Demo代码片段:
1 | Person p=new Person(); |