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());
}
}