Это работает нормально, но проблема в том, что тип возврата в родительском строитель Методы. < /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