在下面的示例中,someObjects是一个集合.如果条件在循环内匹配,我试图返回true,但是这似乎没有编译.但是,当我只是添加"返回"它工作正常.我需要解决的问题是什么?
public boolean find(){
someObjects.forEach(obj -> {
if (some_condition_met) {
return true;
}
});
return false;
}
Run Code Online (Sandbox Code Playgroud)
编译错误
Iterable类型中的forEach(Consumer)方法不适用于参数((obj) - > {})
Jas*_* Hu 11
我想你想这样做:
public boolean find(){
return someObjects.stream().anyMatch(o -> your_condition);
}
Run Code Online (Sandbox Code Playgroud)
该forEach在方法Collection 需要一个Consumer,这意味着一个函数,它的值,但不返回任何东西.这就是为什么你不能使用,return true;但return;工作正常.
我想在条件满足时突破循环,最好使用简单的for(...)循环.我假设的类型obj是Object:
for (Object obj : someObjects) {
if (some_condition_met) {
return true;
}
}
return false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17311 次 |
| 最近记录: |