Я не совсем понимаю, как лучше всего реализовать реализацию шаблона Builder для следующей иерархии обобщений.
Базовый класс,
@lombok.Data
public class Node<T> {
private T data;
private String source;
}
Дочерний класс,
@lombok.Data
public class MyNode extends Node<MyNode> {
private String firstDummy;
private String secondDummy;
}
Есть ли способ применить анонимный класс построителя к родительскому и расширить его в дочернем классе?
Обновлен
Если у меня есть анонимный конструктор, напримертак для Родителя,
public class Node<T> {
private T data;
private final String source;
public static abstract class Builder<S extends Node> {
private String source;
public Builder<S> withSource(String source) {
this.source = source;
return this;
}
public abstract S build();
}
public static Builder<?> builder() {
return new Builder<Node>() {
@Override
public Node build() {
return new Node(this);
}
};
}
protected Node(Builder<?> builder) {
this.source = builder.source;
}
}
Как мне тогда реализовать конструктор для T
в Node
классе?