NullPointerException是Java中最常見的異常之一,它表示一個(gè)程序嘗試訪問一個(gè)空引用對(duì)象的屬性或調(diào)用空引用對(duì)象的方法。當(dāng)一個(gè)對(duì)象被創(chuàng)建后,如果沒有給它賦予具體的值,那么這個(gè)對(duì)象的引用就是空引用。當(dāng)程序嘗試使用空引用對(duì)象時(shí),就會(huì)拋出NullPointerException異常。
NullPointerException異常通常是由以下幾種情況引起的:
String str;
System.out.println(str.length()); // 拋出NullPointerException異常
String str = null;
System.out.println(str.length()); // 拋出NullPointerException異常
public String getName() {
return null;
}
String name = getName();
System.out.println(name.length()); // 拋出NullPointerException異常
為了避免NullPointerException異常的發(fā)生,可以在使用對(duì)象之前進(jìn)行判空操作。常見的判空操作有以下幾種方式:
String str = null;
if (str != null) {
System.out.println(str.length()); // 判空后再使用對(duì)象
}
String str = null;
int length = str != null ? str.length() : 0;
System.out.println(length);
String str = null;
Optional<String> optionalStr = Optional.ofNullable(str);
optionalStr.ifPresent(s -> System.out.println(s.length()));
總結(jié)來說,NullPointerException異常是由于程序嘗試訪問或操作空引用對(duì)象而引起的。為了避免該異常的發(fā)生,可以在使用對(duì)象之前進(jìn)行判空操作。