这个小程序
public class Client {
public static void main(String[] args) throws Exception {
Arrays.asList(null);
}
}
抛出一个 NullPointerException
异常。
Exception in thread "main" java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:221)
at java.base/java.util.Arrays$ArrayList.<init>(Arrays.java:4322)
at java.base/java.util.Arrays.asList(Arrays.java:4309)
at org.example.Client.main(Client.java:10)
然而,这个程序
public static void main(String[] args) throws Exception {
Arrays.asList(returnNull());
}
private static Object returnNull(){
return null;
}
他们为什么会表现不同呢?
null
值,而在第一种情况下,它被解释为一个null
数组。不知道为什么和如何,尽管如此。 - Arnaud