簡單的通過動態(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);
}
}