带有Java泛型的构建器模式

问题描述 投票:0回答:1

我不太了解如何最好地实现以下泛型层次结构的构建器模式。

基类,

@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实现构建器?

java generics builder
1个回答
0
投票

[如果您想练习即时实现构建器,那么可以,您可以实现它们。 @nixgadget的提示很好。

© www.soinside.com 2019 - 2024. All rights reserved.