如何将可选 转换为可选 [关闭]
2023-12-04

我在 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);

除了在可选选项上运行地图之外,我还有什么想法可以实现这一点。我希望得到类似下面的代码的东西,但这不起作用

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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将可选 转换为可选 [关闭] 的相关文章

随机推荐