使用可选类Java表示内部if-else块

使用可选类Java表示内部if-else块,java,Java,我无法找到使用Optional编写内部if-else条件的方法。如何在筛选器之后处理else条件 if(someObject != null){ if(someObject.someAttribute.equals(someValue){ return someOtherValue; } else { return someObject.someAttribute; } } else return null; 过滤器不适用于此

我无法找到使用Optional编写内部if-else条件的方法。如何在筛选器之后处理else条件

if(someObject != null){
     if(someObject.someAttribute.equals(someValue){
         return someOtherValue;
     } else {
         return someObject.someAttribute;
     }
} else return null; 

过滤器
不适用于此用例。你可以写:

Optional.ofNullable(someObject).map(a -> a.someAttribute).filter(a->a.equals(someValue)).map(a ->someOtherValue)// I'm stuck after this
如果要在
someObject
null
时返回
null
,只需添加:

return Optional.ofNullable(someObject)
               .map(a -> a.someAttribute)
               .map(a -> a.equals(someValue) ? someOtherValue: a);

但是如果这是您的目标,那么首先使用Optional就没有什么意义了。

不,它返回一个空的Optional。对不起,我不知道如果
someObject
为null,如何返回null?如果
someObject
为null,我需要返回null。是否可以编辑您的答案?@BalarajV如果需要返回null,为什么要使用可选选项?该类的目的正是为了避免返回null。。。
               .orElse(null);