Ric*_*ard 3 java optional java-8
我有这样的类结构:
public class Foo {
private FooB fooB;
public Optional<FooB> getFooB() {
return Optional.ofNullable(fooB);
}
}
public class FooB {
private String a;
private String b;
public String getA() {
return a;
}
public String getB() {
return b;
}
}
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的:
main() {
//initialize a Foo object called foo
String a = foo.getFooB().ifPresent(FooB::getA);
}
Run Code Online (Sandbox Code Playgroud)
基本上,如果foo的对象返回FooB如存在,则获取字段String a从FooB并将其存储在局部变量String a.如何在一行中优雅地完成这项工作?
当getFooB()返回一个实例Optional<FooB>,为了得到相应的值getA(),你需要使用下面的map方法:
Optional<String> a = foo.getFooB().map(FooB::getA);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3450 次 |
| 最近记录: |