「someObj」を受け取るメソッドがあり、その目的は、タイプ Set<> の var ASet をチェックし、それを反復処理して、そのオブジェクトをデータベース オブジェクトに置き換えることです。そのために、次のコードを書きました。
if(!CollectionUtils.isEmpty(someObj.getASet())){
someObj.setASet(
someObj.getASet()
.stream()
.map( c -> AService.getExistingA(c.getId()))
.collect(Collectors.toSet())
);
}
それは目的を果たしますが、読みやすさには本当に満足していません。
Optional.ofNullable(someObj.getASet())
.ifPresent( ASet-> someObj.setASet(
ASet.stream()
.map( c -> AService.getExistingA(c.getId()))
.collect(Collectors.toSet())
));
今ではさらに読みにくくなっていますが、より良い方法をお勧めできますか? 最悪の問題は、someObj.setASet が奇妙に見えることだと思います。収集後にそのオブジェクトを置き換える機能的な方法はありますか?