簡體   English   中英

JAVA 8可選地圖,否則

[英]JAVA 8 Optional map or else

您好,我用Optional<Parameter>編寫了語句,如果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()之前的運算符我做錯了什么。

解決方法如下:

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

由於parameter.getCurrentValue()返回String您不能使用!

您應該使用! 僅在布爾值之前:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM