- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我对 Optional.ofNullable
方法感到惊讶。有一天我写了一个应该返回 Optional 的函数:
private Optional<Integer> extractFirstValueFrom(InsightsResponse insight) {
return Optional.ofNullable(insight.getValues().get(0).getValue());
}
我错误地认为 Optional.ofNullable
会阻止参数表达式中的任何 NullPointerExceptions
。
现在我想我知道这是非常愚蠢的想法。 Java 必须首先解析参数才能将其传递给 Optional.ofNullable
调用。
但我有一个问题。有没有很好的方法来实现我的目标?我想从表达式 insight.getValues().get(0).getValue()
获得一些整数值或空值。 Null 可以是以下每个表达式:insight.getValues()
或 insight.getValues().get(0)
。
我知道我可以把它放在 try/catch block 中,但我想知道是否有更优雅的解决方案。
最佳答案
如果你不知道什么可以是 null
,或者想检查所有的 null
,唯一的方法是将调用链接到 Optional.map
:
If a value is present, apply the provided mapping function to it, and if the result is non-null, return an Optional describing the result. Otherwise return an empty Optional.
因此,如果映射器返回 null
,则将返回一个空的 Optional
,从而允许链式调用。
Optional.ofNullable(insight)
.map(i -> i.getValues())
.map(values -> values.get(0))
.map(v -> v.getValue())
.orElse(0);
对 orElse(0)
的最后一次通话如果任何映射器返回 null
,则允许返回默认值 0。
关于java - Optional.ofNullable 和方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35337020/
这个问题在这里已经有了答案: How to convert Optional to Optional [closed] (3 个答案) 关闭 2 年前。 我正在尝试在 Optional.OfNull
我想知道使用Optional.ofNullable()是否有退出 for(String name: names){ if(name != null) person = "Mr./Mrs.
我可以使用 Java8 提取特定部分,如下所示 request.getBody() .getSections() .filter(section -> "name".equ
我想知道使用Optional.ofNullable()是否有退出 for(String name: names){ if(name != null) person = "Mr./Mrs.
有时我得到的值为 [null]对于 List employees 。为了防止我执行以下检查 List employees …. if((employees.size()>0 && employees.
我有一种方法来验证电子邮件的收件人。 在我的代码中 .map(Recipient::getId) 产生错误: Non static method cannot be reference from a
哪种空检查更可取? Optional.ofNullable(port).ifPresent(settings::setPort); 或 if (port != null) { settings.
我对 Optional.ofNullable 方法感到惊讶。有一天我写了一个应该返回 Optional 的函数: private Optional extractFirstValueFrom(Insi
我有一个嵌套类结构,用于反序列化我的数据: Class A has a single property that is an object of Class B (say b) Class B has
此 using optionals correctly is not optional 中的第 12 项文章状态 Sometimes, we tend to "over-use" things. Me
java.util Optional.ofNullable 是否与 Mockito 一起正常工作? 在代码执行过程中,我遇到了这样的事情: User user = Optional.ofNullabl
考虑这个表达式的用法: String hi = Optional.ofNullable(sayHi()).orElse("-"); 有效对应于这个三元表达式: String hi = sayHi()
没有的原因是什么: OptionalInt.ofNullable(Integer); 如果您想将可选/可为空的 Integer 转换为 OptionalInt,这似乎是一个完美的选择。我目前正在使用我
首先,我知道这两种方法的区别。 Optional.of : 用于保证不存在null,如果输入null,nullPointExcepction Optional.ofNullable :可能为空,也可能
我正在开发一个java应用程序,我发现了这两个选项: 一个是jdk原生的Optional.ofNullable,另一个是来自guava库的Optional.fromNullable。 简单来说,它们的
我对 Java 8 可选有疑问。 下面的代码给出编译错误: Integer number = Optional.ofNullable(new Integer(10)); 但是当我们执行以下操作时,它不
这个问题已经有答案了: Optional.of(null)will throw NPE, I need to verify null before call the method? (2 个回答) 已
这个问题在这里已经有了答案: Uses for Optional (14 个答案) 关闭 5 年前。 我最近看到一个blog post ( tweeted by @java ) 这表明以下代码正变得
我注意到如果我按以下方式使用 Optional: Object returnValue = Optional.ofNullable(nullableValue) .map(nonNu
我有一个关于 Java 8 的问题 Optional ,其目的是解决 NullPointerException 异常。 问题是,让我们选择两种类型的原因是什么: Optional.of(T value
我是一名优秀的程序员,十分优秀!