關於List中可以新增null的問題
阿新 • • 發佈:2019-01-04
在回顧看java程式設計思想時,練習小程式,給ArrayList中新增元素,ArrayList中可以新增null元素,對這個現象,表示不太理解。
ArrayList已經又泛型約束了,只能新增指定型別或者其子類或實現類,新增null時,null和泛型直接的關係……null需要繼續關注;
import java.util.ArrayList;
public class ListDemo {
public static void main(String[] args) {
ArrayList<Gerbil> list = new ArrayList<Gerbil>();
for (int i = 0;i<8;i++){
list.add(new Gerbil());
}
//不報錯,但是這樣做是危險的,在堆集合元素進行方法呼叫
//時,有可能出現空指標異常
list.add(null);//可以新增null
list.add(new Object());//不可以新增
System.out.println(list.size());
for(int i = 0;i<list.size();i++){
//此處要進行空指標判斷,
//避免呼叫錯誤
if(list.get(i)!=null){
System.out.println(list.get(i).id());
}
}
}
}
class Gerbil{
private static int gerbilNumber;//靜態資料,所有類物件共享
//不可修改的型別,一旦複製,不再修改,減少執行開銷
private final int id = gerbilNumber++;
public String id(){return "the number "+id+" gerbil is running!";}
}