利用java中的method类中的方法进行封装,直接上代码:
public class ModelUtils {
//需要一个List放置实体类
List<Object> list=null;
/**
* 构造函数,进行赋值
* @param list
*/
public ModelUtils(List<Object> list){
this.list=list;
}
/**
* 获取属性的值
* @param fName 获取联合实体类的属性的名称
* @return
*/
public <T> T getValue(String fName){
//组装方法名
String methodName="get"+fName.substring(0,1).toUpperCase()+fName.substring(1);
//获取方法名所在的实体类
for(Object o:list){
try {
//查找方法
Method method = o.getClass().getMethod(methodName);
//判断方法是否存在
if(method!=null){
//由于invoke返回的是Object类型,因此要强制转换成T类型
return (T)method.invoke(o);
}
} catch (Exception e) {
}
}
return null;
}
public <T> void setValue(String fName,T value,Class<T> type){
String methodName="set"+fName.substring(0,1).toUpperCase()+fName.substring(1);
for(Object o:list){
try {
//查找方法
Method method = o.getClass().getMethod(methodName,type);
if(method!=null){
method.invoke(o, value);
return;
}
} catch (Exception e) {
}
}
}
}
测试类