class GenericsList<T> {
private List<T> list;
public GenericsList(List<T> list) {
this.list = list;
}

public void getElementClass() {
//此处需要T的类
}
}public class GenericsListDemo {
public static void main(String args[]) {

List<String> list = new ArrayList<String>();

GenericsList<String> gList = new GenericsList<String>(list);
gList.getElementClass();
}
}

解决方案 »

  1.   

    直接用T就行了
    for(T t:list)
    {
    ^^^^^^^^
    }
      

  2.   

    强调一下,我需要的是T的类(class),不是标识
    如用于:spring.getHibernateTemplate().loadAll(T.class);
      

  3.   

    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.ArrayList;
    import java.util.List;class GenericsList<T> {
    private List<T> list; public GenericsList(List<T> list) {
    this.list = list;
    getElementClass();
    } public void getElementClass() {
    // 此处需要T的类 (return T.class;)
    Type type = list.getClass().getGenericSuperclass();
    System.out.println(type);
    ParameterizedType pType = (ParameterizedType)type;
    System.out.println(pType);
    Type[] aType = pType.getActualTypeArguments();
    System.out.println(aType[0]);
    System.out.println(aType[0].getClass());
    }

    public List<T> getList() {
    return list;
    }
    }class Dog {
    }class Cat {
    }public class GenericsListDemo {
    public static void main(String args[]) { List<Dog> list1 = new ArrayList<Dog>(); GenericsList<Dog> gList1 = new GenericsList<Dog>(list1);
    gList1.getList();

    // List<Cat> list2 = new ArrayList<Cat>();
    // GenericsList<Cat> gList2 = new GenericsList<Cat>(list2);
    // gList2.getList();
    }
    }
      

  4.   

    if(list.size>0){
        if(list.get(0) instanceof String){
                   //你的操作    }
        else if(list.get(0) instanceof xxx){
                   //你的操作    }
    }试试这个吧,没调试的
      

  5.   

    晕,没看标题,isEmpty()==true了,看样子我的不行