如果存在,则将 Optional 的值分配给变量

新手上路,请多包涵

您好,我正在使用 Java Optional。我看到 Optional 有一个方法 ifPresent。

而不是做类似的事情:

 Optional<MyObject> object = someMethod();
if(object.isPresent()) {
    String myObjectValue = object.get().getValue();
}

我想知道如何使用 Optional.ifPresent() 将值分配给变量。

我正在尝试类似的东西:

 String myValue = object.ifPresent(getValue());

我需要什么 lambda 函数来获取分配给该变量的值?

原文由 chrisrhyno2003 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 501
2 个回答

您可以使用 #orElseorElseThrow 来提高代码的可读性。

 Optional<MyObject> object = someMethod();
String myValue = object.orElse(new MyObject()).getValue();


 Optional<MyObject> object = someMethod();
String myValue = object.orElseThrow(RuntimeException::new).getValue();

原文由 CompilaMente 发布,翻译遵循 CC BY-SA 3.0 许可协议

很晚了,但我做了以下事情:

 String myValue = object.map(x->x.getValue()).orElse("");
                           //or null. Whatever you want to return.

原文由 Optional 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题