日期:2014-05-20  浏览次数:20658 次

关于泛型的应用
Queue<BinaryNode<T>> queueLeaf=new Queue<BinaryNode<T>>();
  请问为什么不行啊!!!!!!!!!!
------最佳解决方案--------------------
Queue 不是类,而是接口。
------其他解决方案--------------------
引用:
Queue 不是类,而是接口。



+1
------其他解决方案--------------------
Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。Java 编译器在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而加快。Java 允许对个别泛型的类型参数进行约束,包括以下两种形式(假设 T 是泛型的类型参数,C 是一般类、泛类,或是泛型的类型参数):T 实现接口 I 。T 是 C ,或继承自 C 。一个泛型类不能实现Throwable接口。
Queue<BinaryNode<T>> queueLeaf=new Queue<BinaryNode<T>>();
Queue是一个接口,不能实例化,所以也就不能实现泛型
------其他解决方案--------------------
接口是不能实例化的(不能new出来),只能被实现
------其他解决方案--------------------
Generic的作用只是为了减少在编译时类型的不确定性,从而在运行过程中需要人去转换成为真正的类型。
所以LZ可以认为
Queue q = new Queue();是否成立而考虑是否可以。。。。