在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());
大家能解释下原因吗?谢谢!

解决方案 »

  1.   

    String类型的时候 add(String s) 这里的参数就只能是String类型了。
     
    默认的应该是
    LinkedList <Object> L = new LinkedList()
      

  2.   

    泛型是一种约束
    LinkedList <String > L = new LinkedList(); 
    这种写法不对的,正确的是
    LinkedList <String > L = new LinkedList<String>(); ,这样表示数组L中只接受类型是String的而L.add(123435);传递的是int,当然出错