Java 8 这是用正确的java8方式编写的吗?
我有一个POJO,其中有一个Java 8 这是用正确的java8方式编写的吗?,java-8,Java 8,我有一个POJO,其中有一个Map字段 我需要做以下检查 检查POJO对象是否为空 检查map是否为空 从映射中获取值 解析为布尔值-在下面的代码段中不会发生这种情况 返回真或假 对于前4项中的否定情况,语句应导致错误值 我有如下的东西 Optional<Object> optional = Optional.ofNullable(event) .map(Event::getAttributes)
Map
字段
我需要做以下检查
map
是否为空Optional<Object> optional = Optional.ofNullable(event)
.map(Event::getAttributes)
.map(attrMap -> attrMap.get("restructured"));
return optional.isPresent();
Optional=Optional.ofNullable(事件)
.map(事件::getAttributes)
.map(attrMap->attrMap.get(“重组”);
返回可选的.isPresent();
我怎样才能用Java8的方式做到这一点?我看到,若值为null,则抛出NPE。是否有任何方法可以像我在步骤中提到的那样,即如果null返回false?可选#orElse
正是您需要的:
return Optional.ofNullable(e)
.map(Event::getAttribute)
.map(m -> m.get("restructured"))
.map(Boolean::parseBoolean)
.orElse(false);
如果任何步骤产生
null
,则结果解析为false
是否orElse
适用于所有中间步骤?吉布斯:我想我的最后一句话应该能给你答案