古詩詞大全網 - 成語用法 - java.lang.NullPointerException是什麽錯誤

java.lang.NullPointerException是什麽錯誤

java.lang.NullPointerException是java常見的異常, 中文常常翻譯為 空指針異常.

觸發條件: 當壹個對象為空(null)時, ?試圖調用對象的方法, 或者訪問或者修改對象的屬性時 ,就會拋出空指針異常.?

解決該異常的辦法:?

盡量避免使用為空的對象,

或者先判斷是否為null 然後再使用,

或者使用try catch 捕獲到該異常後處理這個異常.?

參考代碼

錯誤示範

public?class?Demo?{

public?static?void?main(String[]?args)?{

String?str?=?null;

if(str.equals("ABC"))?{?//str為空,調用str的equals方法,?就會報錯

System.out.println("字符串的內容是ABC");

}else?{

System.out.println("字符串的內容不是ABC");

}

}

}

解決示範1

public?class?Demo?{

public?static?void?main(String[]?args)?{

String?str?=?null;

if("ABC".equals(str))?{?//使用"ABC"這個不為null的對象,調用他的equals方法

System.out.println("字符串的內容是ABC");

}else?{

System.out.println("字符串的內容不是ABC");

}

}

}

示範2: 先判斷是否為空, 不為空, 才調用方法和訪問屬性

public?class?Demo?{

static?String?str1;

public?static?void?main(String[]?args)?{

if(str1!=null)?{//先判斷它不為空,才調用?它的length方法

System.out.println(str1.length());

}else?{

System.out.println("str1對象為空");

}

}

}

示範3

import?java.util.Scanner;

public?class?Demo?{

static?String?str1;

public?static?void?main(String[]?args)?{

try?{

System.out.println(str1.length());

}catch(NullPointerException?e)?{

System.out.println("str1為空...請賦值..");

Scanner?sc?=?new?Scanner(System.in);

str1?=?sc.nextLine();

System.out.println("str1的長度為:"+str1.length());

}

}

}

//str1為空...請賦值..

//ABC

//str1的長度為:3