Java 內省技術(Introspector)

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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章