public ValueA map(ValueB valueB, Date date) {
Optional<ValueC> valueCOpt = find(valueB);
if (valueCOpt.isPresent()) {
ValueC valueC = valueCOpt.get();
// call many getters on valueC and do a lot of logic with it.
return map(/*some parameters*/);
}
return null;
}
這似乎相當難看。可選項的優點完全消失在這裏。我讀到,應該使用map
或flatMap
而不是get
。但它是一個真正的好處,如果我喜歡更換如何避免使用Optional.get和Optional.isPresent
valueC.getFieldA()
每個獲取方法,
valueCOpt.map(ValueC::getFieldA)
你知道一些常用的或最好的做法在這裏?
https://www.youtube.com/watch?v=Ej0sss6cq14 – Eugene