使用可选对象字段返回null或新对象

时间:2018-07-27 15:10:24

标签: java lambda java-8 optional

我们有一个方法,其中我们收到一个@NgModule({ declarations: [ AppComponent, MainComponent ], imports: [ AppRoutingModule ] }) export class AppModule {} 对象。如果所包含的Optional<SomeType>对象不为null,则必须使用SomeType对象的字段初始化SomeOtherType对象,并返回该新对象;否则我们必须返回null

我们发现了多个不同的解决方案,其中我们用两条语句执行此任务,首先检索可选对象,然后再创建另一个类型对象,例如

SomeType

有可能用一个陈述来涵盖吗?到目前为止,我们还无法确定是否进行空检查,访问字段,创建新对象等等。

此问题的更复杂的情况:Get field of optional object or return null

1 个答案:

答案 0 :(得分:8)

使用Optional.map

return getOptionalSomeTypeFromSomeWhere()
    .map(someObject -> new SomeOtherType(someObject.getField1(), someObject.getField2(), ...)
    .orElse(null);