【发布时间】:2018-07-19 15:33:11
【问题描述】:
我有一个返回boolean 的validate 方法。
我正在使用如下调用此方法(Java 7):
boolean isValid = true;
for (String key: aMap.keySet()) {
isValid &= validate(key, aMap.get(key));
}
我想用 Java 8 重写这段代码。
Java 8 允许使用以下方法遍历 Map:
aMap.forEach((k,v) -> validate(k, v));
但这行不通:
aMap.forEach((k,v) -> isValid &= validate(k, v));
问题
如何将 Java 7 代码重写为 Java 8 以达到相同的结果?
注意:
我问了一个类似的问题here。这篇文章的不同之处在于这次我想遍历Map 的所有项目(用于validate 方法来构建验证报告)。如果没有发生验证错误,isValid 必须返回 true,如果至少发生了一个错误,则必须返回 false。
【问题讨论】: