Field field = 类.getClass().getField(
"acMoneyEntryBankList");
假如这个类当中有个acMoneyEntryBankList  是List我怎么把该field 转成 acMoneyEntryBankList  原本的类型

解决方案 »

  1.   

    转化不行,获取它的类型是可以的。public class Demo { public static void main(String[] args) throws SecurityException, NoSuchFieldException {
    Field field = Sample.class.getField(
    "list");
    System.out.println(field.getType());
    System.out.println(field.getGenericType());
    }
    }class Sample{
    public List<Integer> list;
    }
      

  2.   

    可是我想获取acMoneyEntryBankList的值
      

  3.   

    这样可以获取到属性值:public class Demo {
    public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
    Field field = Sample.class.getField("list");
    Sample s = new Sample();
    List list = new ArrayList();
    list.add(3);
    s.list = list;
    List list2 = null;
    list2 = (List)field.get(s);  //获取属性值
    System.out.println(list2);
    }
    }class Sample{
    public List<Integer> list;
    }
      

  4.   

    我认为用反射实现,但是会有点复杂。先用反射将你的list交给一个代理对象,然后再用反射解析这个对象,获取这个代理对象里的值,其实可以用回调的方法(因为你对象里可能还有list类型的属性),将来也可以用的着
      

  5.   

    have a try
    Field field = 类.getClass().getField("acMoneyEntryBankList");
    field.setAccessible(true);
    Object obj = field.get(类实例);
    if (obj instanceof List) {
        List list = (List)obj;
        for (...) {
            ...
        }
    }