反射獲取屬性值

簡單的通過動態(tài)屬性名獲取屬性值
一個簡單的JAVA對象

public class platformBean {
    
    private String platName1;
    
    private String platLink1;
    
    private String platName2;
    
    private String platLink2;
    
    private String platName3;
    
    private String platLink3;
    
    private String platName4;
    
    private String platLink4;
    
    private List<tempPlat> listPlat;
}

public class tempPlat {
    private String platName;
    private String platLink;
}
package com.lovo.test;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;


import com.lovo.beans.platformBean;
import com.lovo.beans.tempPlat;

public class reflexTest {

    public static Object getValeByReflex(String key,Object obj)
    {
        //獲取對象文件數(shù)組
        Field[] fieldes = obj.getClass().getDeclaredFields();
        for (Field field : fieldes) {
            //設(shè)置權(quán)限
            field.setAccessible(true);
            //field.getName() 獲取屬性名
            if(key.equals(field.getName()))
            {
                try 
                {
                    //獲取屬性值
                    return  field.get(obj);
                    
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }
        return null;
    }
    
    
    public static void main(String[] args) {
        
        platformBean bean = new platformBean("平臺1", "連接1", "平臺2", "連接2", null, null, null, null);
        
        List<tempPlat> platList = new ArrayList<tempPlat>();
        
        for(int i=1;i<5;i++)
        {
            String plat ="platName"+i;
            String link ="platLink"+i;
            plat = (String) getValeByReflex(plat, bean);
            link= (String) getValeByReflex(link, bean);
            if(StringUtils.isNotEmpty(plat)&&StringUtils.isNotEmpty(link))
            {
                tempPlat temp = new tempPlat();
                temp.setPlatName(plat);
                temp.setPlatLink(link);
                platList.add(temp);
                
            }
        }
        bean.setListPlat(platList);
        
        System.out.println(bean);
        
        
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 簡書 王俊杰猛 水滸傳:水滸人物賞析,扈三娘,魯智深,花榮 弓開秋月——花榮 提及花榮,永遠(yuǎn)都是手中那支箭。 在《...
    王俊杰猛閱讀 2,873評論 2 5
  • 標(biāo)題正如現(xiàn)在的心情,黑色,看多了黑色,你會恐慌嗎!自我反思不下數(shù)十次,也從別人的影子里面尋了尋,我為什么那么心情低...
    菲児依一閱讀 439評論 0 0
  • 小時候,答案總在練習(xí)冊的最后幾頁,答案寫的是什么就是什么;多年以后,長大成人,我依舊習(xí)慣于找標(biāo)準(zhǔn)答案,一開始覺得答...
    十一而立閱讀 182評論 0 0

友情鏈接更多精彩內(nèi)容