java - Java 11 中的高效空检查

标签 java null java-11 null-check

这个问题在这里已经有了答案:





Check chains of "get" calls for null

(10 个回答)


去年关闭。




我需要使用对象中 3 个级别的 getter。

response.getServiceError().getErrorCode()
一个或多个对象可能为 NULL。现在,我正在这样做
if (response != null && response.getServiceError() != null && response.getServiceError().getErrorCode() != null && response.getServiceError().getErrorCode().equals("errCode123")) {
     //doSomething;
}
有没有更好和/或优雅的方式来构建 if 条件?

最佳答案

使用 Optional !

Optional.ofNullable(response)
    .map(Response::getServiceError)
    .map(ServiceError::getErrorCode)
    .filter(code -> code.equals("errCode123"))
    .ifPresent(code -> {
        // doSomething
    });

关于java - Java 11 中的高效空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63946331/

相关文章:

java - 使用 play 框架连接到 mysql 数据库时出现异常

java - 基于接口(interface)的匿名类定义……也许吧?

java - 如何以编程方式将 ChartPanel 中的当前图表保存为 PNG?

java - Jsoup element.class.class selcet 方法返回 null

spring-boot - 上游连接错误或在 header 之前断开/重置。重置原因 : connection failure. Spring Boot 和 java 11

java - 从许多矩形中查找最接近的矩形

ms-access - Access 2010 .SetFocus命令语法出现问题

android - 在哪里放置 JAXB 依赖项以在 Java 11 上编译 Android 数据绑定(bind)?

java - 为什么 OpenJDK 11 Java 垃圾收集器*减少*此示例程序中的可用内存?

Javascript 令人困惑的 null、instanceof 和 typeof 语法不一致?