我想创建List<T> l = new List<T>();
只有在new的时候才知道T的类型.

解决方案 »

  1.   

    你想说啥。。  而且这个LIST不是java.util.list吧。 不然还不能实例化。。
      

  2.   

    List<T> l = new ArrayList<T>();或者List<T> l = new LinkedList<T>();
      

  3.   

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

  4.   

    Java的泛型基本就是弱智的产物
      

  5.   

    List<T> l = new List<T>();这里面T的类型只有在运行的时候才能够确定,可能是int,string或者自己定义的类
      

  6.   

    泛型是1.5之后才有的,以前没有泛型的时候,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,你转换的时候对实际参数的类型是要知道的。如果你写错了类型,编译器一般不提示错误,等运行时候才会出错。
    泛型的出现,就是你编译的时候就提示你出错。理解Java泛型最简单的方法是把它看成一种便捷语法,能节省你某些Java类型转换上的操作: List<Apple> box = ...;
    Apple apple = box.get(0);上面的代码自身已表达的很清楚:box是一个装有Apple对象的List。get方法返回一个Apple对象实例,这个过程不需要进行类型转换。没有泛型,上面的代码需要写成这样: List box = ...;
    Apple apple = (Apple) box.get(0);很明显,泛型的主要好处就是让编译器保留参数的类型信息,执行类型检查,执行类型转换操作:编译器保证了这些类型转换的绝对无误。
      

  7.   

    用通配符?来表示未知类型。如List<?>就声明了List中包含的元素类型是未知的。
      

  8.   

    List<?> l = new ArrayList<?>();
      

  9.   

    package test;import java.util.ArrayList;
    import java.util.List;public class JVMTest<T> { /**
     * @param args
     */   public  List<T> test(String className) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
       List<T> l = new ArrayList<T>(); 
    return l;

       }
    }