01-Introspector內省機制
阿新 • • 發佈:2018-11-19
在java領域程式設計中,內省機制相當的不錯,可以省去我們程式設計師很多的不必要的程式碼
比如說:在jdbc工具類 我們可以將ResultSet結果集待到 javabean物件中
將http請求報文的資料 轉換到一個 javabacn物件當中去 這樣子可以省去我們很多的 request.getparameter('name') request.getparameter("password")
還有理解各種持久框架 都是用到了內省機制程式設計 很重要,很重要,很重要
java內省機制核心類是 Introspector
來一個示例吧!
先寫一個使用者Bean類
package com.oa.domain; import lombok.Data; /** * 註明:我這裡使用了 lombok工具來自動生成 getter/setter方法 * 如果你沒有配置,則自己手動寫 getter/setter方法吧!!! * @author Administrator * */ @Data public class User { private Integer id; //使用者Id private String userName; //使用者名稱private String password; //密碼 }
使用內省機制獲取所有的屬性
package com.oa.test; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import com.oa.domain.User; public class Demo1 { /** * 劉詩華 *@param args * @throws Exception */ public static void main(String[] args) throws Exception { //獲取User Bean位元組碼 BeanInfo beanInfo = Introspector.getBeanInfo(User.class); //獲取所有的屬性集合 PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor pd : propertyDescriptors) { System.out.println("屬性名:"+pd.getName()); } // 列印結果如下顯示 // 屬性名:class class是繼承 extends Object類上面的屬性 // 屬性名:id // 屬性名:password // 屬性名:userName } }