Товарищи вот чего спрошу. В джаве разработчики по неосмотрительности оставили инференцию типов дженериков и типов параметров лямбд. В итоге, получается что можно писать так что бойлерплейта типа var и Borsch borsch = new Borsch(); и Borsch.newBuilder().addSmetana().build(); писать не нужно, если использовать тип Function для почти всего с пачкой функций-комбинаторов. Если обмазать это немутабельными коллекциями то будет совсем красиво(ну, с моей точки зрения). Вот, а насколько в разрез это пойдет с идиоматичной джавой?
Вы под не привели, остается тольео гадать.
Если вы имели ввиду патерн
GenericBuilder и его использовприе вроде такого:
Person value = GenericBuilder.of(Person::new) .with(Person::setName, "Otto").with(Person::setAge, 5).build();
То, на мой взгляд это вполне себе вписывается в новую идиматику java и не должно вызывать серьезных побочных эффектов совместимости кода.
Альтернативные способы, вроде Limbok
@Build уже вмешиваются в компиляцию, и по сути расширяют идиоматику Java, могут вызвать повеление, несовместимое с АОП и другими расширениями.