for(Object obj:listInfo){ //如果能直接用field来取出数值的话: Field f = dtoClass.getField(参数名称); Object value = f.get(obj); //如果需要使用get方法来取数值的话: Method m = dtoClass.getMethod(方法名称, 方法参数的CLASS..); Object value = m.invoke(obj, 方法参数的CLASS);}
汗。笔误Object value = m.invoke(obj, 方法参数的CLASS);这个应该是Object value = m.invoke(obj, 方法参数的值);
for(Object obj:listInfo){
//如果能直接用field来取出数值的话:
Field f = dtoClass.getField(参数名称);
Object value = f.get(obj);
//如果需要使用get方法来取数值的话:
Method m = dtoClass.getMethod(方法名称, 方法参数的CLASS..);
Object value = m.invoke(obj, 方法参数的CLASS);}
有点迷糊!// 业务逻辑
List<dummyDto> dto = "数据库取得数据";
doDownLoadInfo(dto, dummyDto.class);
@SuppressWarnings("unchecked")
public void doDownLoadInfo(List<?> listInfo, Class<?> dtoClass) {
if(dtoClass==dummyDto.class){
List<dummyDto> dto=(List<dummyDto>)listInfo;
//然后操作dto
}
}
想这么用?
我并不知道dto里面的变量名称,所以此方法应该不行。
我只需要能够取到值就好。
哎,目前我觉得Method[] methods = dtoClass.getMethods();这一步就能够取得get方法,也就是能取得值,但是在这之前应该做什么处理,我没研究出来。。