假设我有
List<Attachment> attachments = getAttachments();
for (Attachment a: attachments)
{
//...
}
在进行收集循环之前,我是否需要检查attachments != null
?
答案 0 :(得分:1)
对此的答案完全取决于您getAttachments()
的实施情况。如果此调用可以返回null
,则需要执行空检查,否则您的代码可能会抛出NullPointerException
。如果它可以返回null,那么更改getAttachments()
的行为可能会更好,因为通常认为collection
返回null是不好的做法。尝试修改它以返回Collections.emptyList()
。
如果您不想修改其行为,则可以轻松添加空检查:
List<Attachment> attachments = getAttachments();
if( attachments != null ){
for (Attachment a: attachments)
{
//...
}
}
答案 1 :(得分:0)
这取决于getAttachments()
是否可以返回null
。如果它返回null
,您的代码将抛出NullPointerException
。因此,您需要检查null
以防止这种情况发生。
答案 2 :(得分:0)
是的,如果您不确定getAttachments()
没有返回Collections.EMPTY_LIST而不是null,那么您应该这样做。否则你会得到NPE。