你好,我用Optional<Parameter>编写了语句,如果参数存在且值为false,则返回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(),我做错了什么。
发布于 2017-10-27 11:57:05
以下是解决办法:
public boolean getNoDailyAllowance(final String code) {
return !parameterDao
.getCachedParameter(code)
.map(Parameter::currentValueBoolean)
.orElse(true);
}发布于 2017-10-27 12:16:57
因为parameter.getCurrentValue()返回String,所以不能使用!否定它。
只应在布尔值之前使用!:
parameter -> ! Boolean.parseBoolean(parameter.getCurrentValue())
https://stackoverflow.com/questions/46974403
复制相似问题