Java 11 中的高效空值检查

Efficient null check in Java 11

我需要使用一个 getter,它在对象中向下 3 层。

response.getServiceError().getErrorCode()

一个或多个对象可能为 NULL。现在,我正在这样做

if (response != null && response.getServiceError() != null && response.getServiceError().getErrorCode() != null && response.getServiceError().getErrorCode().equals("errCode123")) {
     //doSomething;
}

是否有更好的 and/or 优雅的方式来构建 if 条件?

使用Optional!

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