解决方案 »

  1.   


    这个问题和我的问题还是有区别的 。 
    这个问题是获取集合里面元素的类型。 
    我现在的问题是这样的:public void test01(List list){
      // 打印List中泛型的类型
    }比如 
    List<String> list01 = new ArrayList<String>();
    test01(list01);
    应该打印String 类型 
    List<Integer> list02 = new ArrayList<Integer>();
    test01(list02);
    应该打印Integer类型 
      

  2.   


    不用发射,这样判断就可以了。
    List list = new ArrayList();
    list.add("test");
    list.add(1);

    for (Object object :list) {
    if (object instanceof String) {
    System.out.println("String");
    }else if (object instanceof Integer) {
    System.out.println("Integer");
    }
    }
      

  3.   

    public class GenericTest   
    {   
        public List<String> list = new LinkedList<String>();   
      
        public static void main(String[] args) throws SecurityException, NoSuchFieldException   
        {   
            ParameterizedType pt = (ParameterizedType) GenericTest.class.getField(   
                    "list").getGenericType();   
            System.out.println(pt.getActualTypeArguments().length);   
            System.out.println(pt.getActualTypeArguments()[0]);   
        }   
    }  
      

  4.   

    这个list只能是成员变量或方法变量中才能获得他的泛型。
      

  5.   

      这个好办,真实运气了楼主你,最近我就研究这个东西
       首先导入这个qdox-1.12.jar(你百度一下就搞定了)
       然后这样:  field.getType().getGenericValue()  就搞定了(看到结果你就知道怎么办了,不再解释)
      

  6.   

    试试这个:List<T> list = new ArrayList<T>(0); 
    Method method = list.class.getMethod("get",null); 
    Class returnTypeClass = method.getReturnType(); 
    returnTypeClass就是返回类型了