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