JAVA 8可选地图或其他

时间:2017-10-27 11:53:22

标签: java dictionary stream optional

您好我已经使用Optional<Parameter>发表了书面陈述,并且如果参数存在,我将返回 true ,并且它的值是

public boolean getNoDailyAllowance(String code) {
    Optional<Parameter> myParam = parameterDao.getCachedParameter(code);
    return myParam.isPresent() && !myParam.get().currentValueBoolean();
}

我想重写一下这样的

return calcDailyAllowanceParam.map(parameter -> Boolean.parseBoolean(parameter.getCurrentValue())).orElse(false); 

但我无法在parameter.getCurrentValue()错误之前添加运算符。

2 个答案:

答案 0 :(得分:2)

以下是解决方案:

public boolean getNoDailyAllowance(final String code) {
    return !parameterDao
      .getCachedParameter(code)
      .map(Parameter::currentValueBoolean)
      orElse(true);
}

答案 1 :(得分:0)

由于parameter.getCurrentValue()返回String,您无法使用!来否定它。

您应该仅在布尔值之前使用!

parameter -> ! Boolean.parseBoolean(parameter.getCurrentValue())