读书人

一个java 泛型 有关问题

发布时间: 2012-01-07 21:41:55 作者: rapoo

请教大家一个java 泛型 问题?
在JAVA 1.5中LinkedList类 声明为泛型的 public class LinkedList<E>
如果我在实例化LinkedList对象时不指定什么类型 ,那它默认为什么类型呢?
比如:
LinkedList L = new LinkedList(); //没有指定类型, 下面代码都能正常执行。
L.add("hello");
L.add(123435);
System.out.println(L.getFirst());
System.out.println(L.getLast());


但是下面的代码中指定成String类型就出错了。
LinkedList<String> L = new LinkedList(); //指定为String类型
L.add("hello");
L.add(123435); //这里报错了 cannot find symbol; symbol : method add(int),
System.out.println(L.getFirst());
System.out.println(L.getLast());


大家能解释下原因吗?谢谢!

[解决办法]
String类型的时候 add(String s) 这里的参数就只能是String类型了。

默认的应该是
LinkedList <Object> L = new LinkedList()
[解决办法]
泛型是一种约束

Java code
LinkedList <String > L = new LinkedList(); 

读书人网 >J2SE开发

热点推荐