Java的內省機制
阿新 • • 發佈:2018-11-25
我現在的理解就是,Java的內省機制就是針對JavaBean的,可以獲取到類的屬性名稱,以及屬性的Getter和Setter方法,應該是在寫框架的時候才會用到內省機制,暫時不知道學了有什麼用
程式碼,我先寫一個JavaBean的類
package com.Day17; public class IntrospectorDemo { private String name; private Integer age; public String getName() { return name; } publicvoid setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
至於什麼是JavaBean去百度查吧,我的理解就是有Getter和Setter屬性
main方法的類:
package com.Day17; import java.beans.BeanInfo; importjava.beans.Introspector; import java.beans.PropertyDescriptor; public class Test { public static void main(String[] args) throws Exception{ //Java內省機制,其實就是獲取類的屬性和屬性型別 //1,獲取JavaBean的描述物件 BeanInfo beanInfo= Introspector.getBeanInfo(Introspector.class,Object.class); //2,獲取JavaBean中的屬性的描述器PropertyDescriptor [] pds=beanInfo.getPropertyDescriptors(); //3,打印出來 for (PropertyDescriptor pd:pds) { System.out.println("屬性名:"+pd.getName()); System.out.println("Getter:"+pd.getReadMethod()); System.out.println("Setter:"+pd.getWriteMethod()); System.out.println("----------------------------------"); } } }
分為3步,我都寫出來了,但是不知道為什麼我的程式碼執行之後沒有結果。暫時這樣吧,這就是內省機制了。