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

简单的集合问题
Java code
public class Test1{
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        
        append(list);
        System.out.println(list.get(0));
    }
    public static void     append(List list){
        list.add("0042");
        
    }
}


为什么我定义的是integer类型的list,使用方法加入了String的变量,而还可以读取出来啊???

------解决方案--------------------
list是引用类型,
因为append(List list)里没有指定list的元素类型,
list里面又可以add任何<E>元素了,
要是改成 append(List<Integer> list),
应该就不能add Integer型以外的元素了。

------解决方案--------------------
Java code


System.out.println(list.get(0) );

------解决方案--------------------
 
flagiris
 
(菖蒲芭芭) 

等 级: 

 #3楼 得分:0回复于:2011-10-11 08:53:28list是引用类型,
因为append(List list)里没有指定list的元素类型,
list里面又可以add任何<E>元素了,
要是改成 append(List<Integer> list),
应该就不能add Integer型以外的元素了。

3楼正解顶