【发布时间】:2017-04-27 12:27:01
【问题描述】:
Boolean isSuccess = true;
if(aMap.size() != bMap.size())
{
return false;
}
aMap.entrySet().forEach(entry -> {
AKey aKey = entry.getKey();
BValue bValue = bMap.get(aKey);
if(bValue == null)
return;
AValue aValue = entry.getValue();
if(!aValue.getClosed().equals(bValue.getClosed()))
return;
if(!aValue.getClosedToArrival().equals(bValue.getClosedToArrival()))
return;
if(!aValue.getClosedToDeparture().equals(bValue.getClosedToDeparture()))
return;
if(!aValue.getLengthOfStayArrival().equals(bValue.getLengthOfStayArrival()))
return;
});
return isSuccess;
验证失败时如何返回 false? 我尝试添加return false,如下所示:
if(!aValue.getLengthOfStayArrival().equals(bValue.getLengthOfStayArrival()))
return false;
不过是意料之外的表情,谁能帮我看看?
【问题讨论】:
-
不使用
forEach。当你想检查是否所有元素都满足一个条件时,你想使用allMatch。顺便说一句,您可以将您的预测试更改为if(!aMap.keySet().equals(bMap.keySet()) return false;这会检查超过地图的大小,并允许在您的条件下省略null测试。 -
感谢您的快速回复
-
@Holger 你好,你能帮我回答stackoverflow.com/questions/43973596/…的问题吗