我是可选和函数编程的新手。如何使用可选(第4行到第7行(优化以下代码?
@Getter @Setter
class Score{
Double score;
Double percentage;
}
Optional<Score> scoreOptional getScore(){}
如何使用可选设置分数和百分比数据
public Optional<Score> calculate(){
Optional<Score> scoreOptional = getScore();
// I am setting data like this
if(scoreOptional.isEmpty())
return scoreOptional;
//line : 4
Score score= scoreOptional.get();
score.setScore(13D);
score.setPercentage(15D);
return Optional.of(score);
//line: 7
}
您可以使用ifPresent
,这可能会使代码看起来更干净。然而,我不确定这是否会";优化";表演。
public Optional<Score> calculate(){
Optional<Score> scoreOptional = getScore();
scoreOptional.ifPresent(score -> {
score.setScore(13d);
score.setPercentage(15d);
});
return scoreOptional;
}
我会使用Optional.map()
:
public Optional<Score> calculate() {
return getScore().map(score -> {
score.setScore(13D);
score.setPercentage(15D);
return score;
});
}