Javaで多くのパラメータをもつオブジェクトを生成するとき、ビルダーパターンというやつがよく使われます。 Undertow server = Undertow.builder() .addHttpListener(port, "localhost") .setHandler(path) .build(); いろいろオプションを付けっていって、最後にbuildメソッドを呼ぶと、パラメータ間の整合性のチェックがされ、インスタンスが作られます。 ときに、そういうオプションを色々もつようなクラスをたくさん作るようなケースで、このビルダーをそれぞれ用意すると大変だよ、ということになります。 そういうとき、メソッド参照とBeanValidationを使えば、汎用的なビルダーを作れます。 こんな感じの汎用ビルダーを用意します。 public class BeanBuilder<X> { private