Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
去年关闭。
Improve this question
我在Java 11中有此代码
我想使用Optional编写此代码,我能想到的最好的方法是。我没有尝试运行它,但我怀疑它会起作用
除了在可选组件上运行map之外,我还有什么想法可以实现此目的。我希望有类似下面的代码,但这行不通
由于某种原因,如果您不能将方法的返回值更改为
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
去年关闭。
Improve this question
我在Java 11中有此代码
Object a = getObjectOrNullIfNotAvailable();
String value = a==null ? null : a.toString();
我想使用Optional编写此代码,我能想到的最好的方法是。我没有尝试运行它,但我怀疑它会起作用
Optional<Object> oa = Optional.ofNullable(getObjectOrNullIfNotAvailable());
Optional<String> oas = oa.map(a -> a.toString());
String value = oas.orElse(null);
除了在可选组件上运行map之外,我还有什么想法可以实现此目的。我希望有类似下面的代码,但这行不通
Optional<Object> oa = Optional.ofNullable(getObjectOrNullIfNotAvailable());
String value = oa.ifPresentOrElse(a -> a.toString(), a -> null);
最佳答案
从方法的返回值中创建Optional似乎有点尴尬。而是让您的getObjectOrNullIfNotAvailable()
方法首先返回Optional。然后使用map
运算符将其转换为字符串。这是它的外观。
Optional<Object> oa = someOptionalReturningMethod();
String value = oa.map(Object::toString).orElse(null);
由于某种原因,如果您不能将方法的返回值更改为
Optional
,则只需使用三元运算符保留命令式解决方案。没有错。String value = a==null ? null : a.toString();
关于java - 如何将Optional <Object>转换为Optional <String>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57730799/
10-15 11:29