java - 检查对象的结果是否不为空然后转换为 boolean 值并在 Java 中设置的简短版本

标签 java java-8 null option-type

我一直在寻找以下 Java 语句的简短版本:

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

如果我想使用 Optional.ofNullable 它不起作用,因为我也需要将对象转换为 boolean 值。

P.S: 我使用的是 Java8。

最佳答案

It's not what Optional.ofNullable for ,但我会分享它是如何完成的,因为我喜欢方法引用。

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

因为你有一个 Map<String, String> , Map#getOrDefault 可能是一种选择。

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

关于java - 检查对象的结果是否不为空然后转换为 boolean 值并在 Java 中设置的简短版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57734488/

相关文章:

java - JFileChooser 从 JMenu 打开文件

winforms - 为什么对话结果为零?

java - 特使显示没有健康的上游

java - 打开 Activity 并根据 ListView 选择进行填充

java - 如何使用 AppAssembler 设置特定于环境的系统属性?

java-8 - java 8 流干扰与非干扰

java - 如何将字符串列表转换为对象列表?

java - Spring AOP 表达式中的多个返回类型

正则表达式仅允许文本字段中的某些字符或空字符串

Typescript 抛出 "Object is possibly ' null'"错误,尽管有类型保护