【发布时间】:2012-07-15 18:09:41
【问题描述】:
java.util.List.isEmpty() 是否检查列表本身是否为null,还是我必须自己检查?
例如:
List<String> test = null;
if (!test.isEmpty()) {
for (String o : test) {
// do stuff here
}
}
这会抛出一个NullPointerException,因为测试是null吗?
【问题讨论】:
-
不能。 NPE 在被调用之前会被抛出。
-
这(“这是否会抛出 NullPointerException,因为 test 为空?”)实际上是一个非常错误的问题。您可以通过一个非常简单的测试轻松测试这个问题。问题本身当然需要考虑更深入地了解 Java 中的引用是如何工作的,为什么 Java 设计成这样是不可能的,但是你应该问不同的问题。