1. 程式人生 > >01-Introspector內省機制

01-Introspector內省機制

在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 } }