Short version of check if the result of an object in not null then cast to boolean and set in Java

Ali n :

I have been looking for a short version of the following statement in Java:

if(headers.get(BinderHeaders.NATIVE_HEADERS_PRESENT) !=null ) {
      record
          .setNativeHeadersPresent((boolean) headers.get(BinderHeaders.NATIVE_HEADERS_PRESENT));
    }

If I would like to use Optional.ofNullable it doesn't work as I need to cast the object to boolean as well.

P.S: I am using Java8.

Andrew Tobilko :

It's not what Optional.ofNullable for, but I will share how it can be done because I love method references.

Optional.ofNullable(headers.get(BinderHeaders.NATIVE_HEADERS_PRESENT))
        .map(boolean.class::cast)
        .ifPresent(record::setNativeHeadersPresent);

Since you've got a Map<String, String>, Map#getOrDefault could be an option.

record.setNativeHeadersPresent(
    Boolean.parseBoolean(
        headers.getOrDefault(BinderHeaders.NATIVE_HEADERS_PRESENT, "false")
    )
);

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=140396&siteId=1