返回NULL在没有价值的将是一个明显的解决方案:
public MailItem getNextMailItem(String who){
MailItem mailItem = null;
if (who != null && who.length() != 0){
mailItem = mailbox.get(who).pollFirst();
}
return mailItem;
}
但想一想:
如果用空沟通,你的回报价值真的是ambiguous。这可能意味着很多事情。相反,您可以使用Guava's Optional或Null object pattern。
使用空模式,你会定义一个拥有中性的行为,可能在你的MailItem接口的实例,并在没有值的情况下返回它:
public MailItem getNextMailItem(String who) {
MailItem mailItem = null;
if (who != null && who.length() != 0){
mailbox.get(who).pollFirst();
} else {
mailItem = MailItem.NULL_ITEM;
}
return mailItem;
}
这样 - 除非意外的异常发生 - 您可以始终确保getNextMailItem
返回MailItem
的有效实例。
这取决于您的要求。最常见的策略是返回null作为MailItem或抛出异常。 – jpvee
当然!在我困惑的脑海里,我认为返回null会给我一个错误。谢谢! – xsiand