uma*_*uma 6 java intellij-idea java-8
我需要转换下面的方法java 8内联函数.需要一些专家的帮助和解释才能做到这一点.
@Override
public boolean a(final Collection<DoseDetailMutableDTO> detailModels) {
for (DoseDetailMutableDTO dd : detailModels) {
final boolean doseDetailTextScheduled = isDoseDetailTextScheduled(dd, 1);
if (doseDetailTextScheduled) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
这个intelj IDE有没有捷径?
您可以使用Stream.anyMatch:
public boolean a(final Collection<DoseDetailMutableDTO> detailModels) {
return detailModels.stream()
.anyMatch(dd -> isDoseDetailTextScheduled(dd, 1));
}
Run Code Online (Sandbox Code Playgroud)
返回
true,如果流的任何元件匹配提供谓词,否则false
编辑 :(来自评论)
在IntelliOS IDEA上学习这种建议的快捷方式的控件
Ctrl+Space也可以在MacOS上使用Alt+Enter.
我们可以在这里尝试使用流:
@Override
public boolean a (final Collection<DoseDetailMutableDTO> detailModels) {
return detailModels.stream()
.filter(x -> isDoseDetailTextScheduled(x, 1))
.findFirst()
.orElse(false);
}
Run Code Online (Sandbox Code Playgroud)
实际上,为了使您的方法null安全,如果输入列表可能是null,我们可以尝试这样做:
@Override
public boolean a (final Collection<DoseDetailMutableDTO> detailModels) {
return Optional.ofNullable(detailModels)
.map(Collection::stream)
.orElseGet(Stream::empty)
.filter(x -> isDoseDetailTextScheduled(x, 1))
.findFirst()
.orElse(false);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |