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

请教大家一个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();