Java 中类的成员变量的访问级别为private ,分别用get 和set来访问和设置这个成员变量的值。
JavaBean 它是一个普通的Java类,用来封装数据,Introspector(内省技术)用来访问Java 类的get 和set 方法(我不认为他们是属性,他们跟普通的方法没什么区别)。
/***
* Dog 类
* @author dream
*
*/
public class Dog {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getName1(){
return this.name;
}
}
public static void main(String[] args) throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Dog dog1=new Dog();
dog1.setName("dog1");
//根据Dog类实例的字节码对象拿到BeanInfo
BeanInfo beans= Introspector.getBeanInfo(dog1.getClass());
//拿到Dog类实例中的方法名称以get或set开头的所有方法PropertyDescriptor
PropertyDescriptor[] ps= beans.getPropertyDescriptors();
//遍历每一个PropertyDescriptor
for(PropertyDescriptor p1 : ps){
System.out.println(p1.getReadMethod().invoke(dog1, null).toString());
}
}