public class demoJavaBean {
public static void main(String[] args) throws IntrospectionException {
BeanInfo bi = Introspector.getBeanInfo(Person.class);
for (PropertyDescriptor pd : bi.getPropertyDescriptors()) {
System.out.println(pd.getName());
System.out.println(pd.getWriteMethod());
System.out.println(pd.getReadMethod());
}
}
}
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getChild() {
return "我是孩子";
}
}
age
public void Person.setAge(int)
public int Person.getAge()
child
null
public java.lang.String Person.getChild()
class
null
public final native java.lang.Class java.lang.Object.getClass()
name
public void Person.setName(java.lang.String)
public java.lang.String Person.getName()
可以发现,class中并没有child字段,但Introspector认为拥有一个getter or setter方法,就是一个属性,property,这里输出了child.
#class属性是父类的public final native Class<?> getClass();
所提供的