首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA 8可选地图或其他

JAVA 8可选地图或其他
EN

Stack Overflow用户
提问于 2017-10-27 11:53:21
回答 2查看 12.6K关注 0票数 0

你好,我用Optional<Parameter>编写了语句,如果参数存在且值为false,则返回true。

代码语言:javascript
复制
public boolean getNoDailyAllowance(String code) {
    Optional<Parameter> myParam = parameterDao.getCachedParameter(code);
    return myParam.isPresent() && !myParam.get().currentValueBoolean();
}

我想把它改写成这样

代码语言:javascript
复制
return calcDailyAllowanceParam.map(parameter -> Boolean.parseBoolean(parameter.getCurrentValue())).orElse(false); 

但是,我不能在!操作符之前添加parameter.getCurrentValue(),我做错了什么。

EN

回答 2

Stack Overflow用户

发布于 2017-10-27 11:57:05

以下是解决办法:

代码语言:javascript
复制
    public boolean getNoDailyAllowance(final String code) {
        return !parameterDao
          .getCachedParameter(code)
          .map(Parameter::currentValueBoolean)
          .orElse(true);
    }
票数 3
EN

Stack Overflow用户

发布于 2017-10-27 12:16:57

因为parameter.getCurrentValue()返回String,所以不能使用!否定它。

只应在布尔值之前使用!

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46974403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档