Ric*_*ard 6 java optional consumer java-8
我有这样的类结构:
public class Foo {
private FooB foob;
public Optional<FooB> getFoob() {
return Optional.ofNullable(foob);
}
}
public class FooB {
private int valA;
public int getValA() {
return valA;
}
}
Run Code Online (Sandbox Code Playgroud)
我的目标是调用get方法fooB,然后检查它是否存在.如果它存在则返回valA属性,如果不存在则返回null.所以像这样:
Integer valA = foo.getFoob().ifPresent(getValA()).orElse(null);
Run Code Online (Sandbox Code Playgroud)
当然这不是正确的Java 8可选语法,但那是我的"伪代码".有没有办法在Java 8中用1行实现这一点?
Lii*_*Lii 18
你所描述的是map方法:
Integer valA = foo.getFoob().map(f -> f.getValA()).orElse(null);
Run Code Online (Sandbox Code Playgroud)
mapOptional如果值存在,则允许您使用函数转换a中的值,并且仅在不存在的值中更改可选的类型.
另请注意,您可以从映射函数返回null,在这种情况下结果将是Optional.empty().
| 归档时间: |
|
| 查看次数: |
1957 次 |
| 最近记录: |