【发布时间】:2014-05-20 21:05:08
【问题描述】:
在我的代码中,当 List 为空时,我通常使用这种方法来避免在 for 语句中出现 NullPointerExceptions:
if (myList != null && myList.size() > 0) {
for ( MyObj obj : myList ) {
System.out.println("MyObjStr: "+obj);
}
}
是否有另一种方法可以不写“if”语句,但使用相同的“for”语句?
【问题讨论】:
-
如果你已经初始化了
myList,没有理由去检查它是否是null,除非在某些时候你明确地给它分配了null。关于尺寸,你不必检查它。 -
您可以通过调用它的构造函数来轻松避免集合为空。在这种情况下,您将拥有非空但为空的集合。如果是这样,你甚至不需要尺寸检查
-
我想知道如果您正在检查
myList不是null那么您需要在哪里检查myList大小大于 0?我的意思是,如果您的列表不为空,那么它必须有大小并且列表不能有负大小,所以我认为myList.size() > 0在您的情况下是不必要的, 除非它被初始化。 -
@AmirAl 大小检查是为了防止大小为 0,而不是负数。即使列表已初始化,它的大小也可能为 0(实际上,如果您不添加任何项目,它确实如此)。 无论如何,不需要此检查,因为
for循环不会对空列表执行任何操作。
标签: java collections arraylist