こういうPOJOを引数にしてなんかするアレがある。
OreoreData oreoreData = new OreoreData();
oreoreData.setOreoreDataId(oreoreDataId);
return oreoreDataService.find(oreoreData);
せっかくStreamAPIで短く書けるようになったので、こういう変数宣言みたいなのもなくしていきたいと思うわけですね。
上の内容は匿名クラスで次のように書くこともできます。
return oreoreDataService.find(new OreoreData(){{setOreoreDataId(oreoreDataId);}});
わりとすっきりした気がしますが、整形かけるとインデントとかめんどくさいし、ぱっと見よくわからん。
ScalaのMapみたいなゆるい感じでやりたいわけです。
という事でこんな感じでUtilを作ってやったらうれしいだろうか
import static my.PojoUtils.*;
return oreoreDataService.find(instance(OreoreData.class, pair("oreoreDataId",oreoreDataId)));
PojoUtils#instance(Class T,PojoUtils.Pair... pairList)
という形で、リフレクションでpairを元に値をセットするイメージ。
ただ、これだとフィールド名を手入力するというクソさが出てきてしまい、かといってEnumやMethodで渡すようにするのも大層な気がして、如何ともしがたさを感じるのです。
そもそもこの手の処理の王道みたいのがあればご教示いただきたく、よろしくお願いいたします。