使用可选类Java表示内部if-else块
我无法找到使用Optional编写内部if-else条件的方法。如何在筛选器之后处理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; 过滤器不适用于此
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);