小鸟 初学JAVA问个比较傻的问题 Class t = String.class;
List<t> list = new ArrayList<t>();
通不过编译
请大虾们帮我解释一下我想实现一个传入一个未知类型的T 对象 放入一个List<T> 集合中去

解决方案 »

  1.   

    那就直接用Object就是了,你传了一个Class对象进去肯定不行啊,Class对象又不是数据类型
      

  2.   

    <T> T必须是一个类名吧,比如List<String>
      

  3.   

    楼主,对于你这种要求根本没必要用泛型。就像1楼说的,直接一个Object算了。用泛型都是已知类型了,省着强转了,用着方便。你这需求用不上。反而麻烦了。
      

  4.   

    建议你不要插入未知类型的对象进去,最好一开始就指定对象类型,如list<String>,另外你插入的不是对象,而是对象得引用,不是对象本身,一个collections中的对象引用都要是一样的对象,你插入一个String,再搞进去个Float对象,会引起classcastexception异常的。
      

  5.   

    楼主,应该可以做到的。
    import java.util.List;
    import java.util.ArrayList;public class TestGerneric<T> { private List<T> list = new ArrayList<T>();

    public static void main(String[] args) {

    TestGerneric<String> test = new TestGerneric<String>();
    test.list.add("StringType");
    }}
    T为任意的类型。
      

  6.   


    TestGerneric<Date> testDate = new TestGerneric<Date>();
    testDate.list.add(new Date());
      

  7.   

    你传递进去的是对象而不是JVM的类型规范, 如果想要实现任意类型的泛型类,或者泛型接口,必须在类注明处跟<T> 任意类型泛型标识才可以. <T> , <V> 等等
      

  8.   

    你可以直接传入一个Object类型 
      

  9.   


    List <?> list = new ArrayList <?>(); 或是List <Object> list = new ArrayList <Object>();