package com.github.ybqdren; /** * Wen(Joan) Zhao <withzhaowen@126.com> * 2021/11/6 * <h1>字符串 数组 集合在使用时使用空指针</h1> */ public class BasicUsageNpe { private static boolean StringEquals(String x,String y){ return x.equals(y); } public static class User{ public String name; } public static void main(String[] args){ } }
System.out.println(StringEquals("xyz",null)); System.out.println(StringEquals(null,"xyz"));
User[] users = new User[10]; for(int i=0;i != 10;i++){ users[i].name = "ybqdren-"+i; }
List<User> users = new ArrayList<User>(); User user = null; List<User> users_ = null; users.add(user); users.addAll(users_);
在第37行抛出了错误:
因为add()只是将对象进行了赋值存储
但是addAll()调用了对象的方法
因此后者会引发空指针异常,但是前者不会
此处可参考总结Java NullPointerException 异常出现情况,以及如何从根源上避免空指针异常 提到的第一种情况
上一篇文章 那些情况会导致赋值时自动拆箱出现空指针,以及如何避免这些情况