Расширение строителя Ломбока, не ломая цепочкиJAVA

Программисты JAVA общаются здесь
Anonymous
Расширение строителя Ломбока, не ломая цепочки

Сообщение Anonymous »

У меня есть класс с шаблоном строителя, который также расширяет класс с помощью строителя (используя lombok @superbuilder ).
Это работает нормально, но проблема в том, что тип возврата в родительском строитель Методы. < /p>

Код: Выделить всё

@Builder
public class Activity {
protected String foo;
protected String bar;

public static abstract class ActivityBuilder {
public ActivityBuilder baz(String baz) {
// ... do something
return this;
}
}
}

@SuperBuilder
public class DetailedActivity extends Activity {

public static abstract class DetailedActivityBuilder extends ActivityBuilder {
public DetailedActivityBuilder platform(Platform platform) {
this.foo(platform.foo);
this.bar(platform.bar)
return this;
}
}
}

// Works because "DetailedActivityBuilder" methods come first:
DetailedActivityBuilder.builder().platform(platformData).foo()

// Fails because the parent builder returns ActivityBuilder
DetailedActivityBuilder.builder().foo().platform(platformData)"
Существует ли какой -либо подход к возврату правильного типа и разрешению цепочки работать в любом порядке?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... g-chaining

Вернуться в «JAVA»