本帖最后由 zhuangwei_ 于 2010-08-05 11:16:58 编辑

解决方案 »

  1.   


    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);}
      

  2.   

    汗。笔误Object value = m.invoke(obj, 方法参数的CLASS);这个应该是Object value = m.invoke(obj, 方法参数的值);
      

  3.   


    有点迷糊!// 业务逻辑
    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
         }
        }
    想这么用?
      

  4.   

    回3楼的,List<dummyDto> dto=(List<dummyDto>)listInfo;原则上我是想实现这一步。但是我传进来的泛型。其实也就是想把泛型dto转成你代码所写的那种,但我觉得这应该是不可能的。我觉得只能够把dto的元素按顺序取出来然后利用。补充一点,其实我并不需要知道泛型dto每个元素的字段名,只要能够取到值就行。
      

  5.   


    我并不知道dto里面的变量名称,所以此方法应该不行。
    我只需要能够取到值就好。
      

  6.   

    我是楼主。
    哎,目前我觉得Method[] methods = dtoClass.getMethods();这一步就能够取得get方法,也就是能取得值,但是在这之前应该做什么处理,我没研究出来。。