我想大家在開發當中遇到最多的報錯就是空指針了吧。
工作已經一段時間了,遇到了很多空指針的問題。
List list=dao.findById(id);
for(int i=0;i<list.size();i++){
//do some thing
}
如果list=null的話,會出現null pointer exceptionjava指針數組的使用
原因不在於List list=null 而在於list.size()這句話,因為如果list為null的話,不可能有size方法,所以出現空指針的錯誤。
很多情況下,出現空指針的錯誤都是類似以上的情形,當然很多時候可能會出現在多層調用的時候。
所以一般需要對返回值做出處理
List list=dao.findById(id);
if(list==null){
//一般情況下會在這裡做return處理,來避免以下的語句對null進行調用,發生空指針
//當然也可以用if else語句來跳過可能出現空指針調用的語句
}
if(list!=null&&list.size()<1){
//需要說明的是內容為空和null是不一樣的,內容為空不會報空指針
//但顯然下面的for循環不會執行
}
for(int i=0;i<list.size();i++){
//do some thing
}
另外對jsp頁面的空指針也是一樣的,因為jsp是被編譯成java class運行的。
比如下面代碼
<%
String para=""
List list=request.getAttribute("users");
log.info(para.length()); //output 0
//如果list為null,下面也會出現空指針
for(Iterator i=list.iterator();i.hasNext();){
//output
}
%>
摘自:牆頭草的 blog