创建包含仅限于子类的对象的父类

时间:2013-06-24 12:40:32

标签: java

我正在尝试创建一个包含对象元素的父类,但我想将此对象限制为扩展父类的类型。我尝试过使用

形式的泛型
<T extends ParentClass> T

但这不起作用。

这是我目前正在处理的一个例子。

public class ParentEvent {
    private Object event;
    private String type;
    private Date time;
    private String id;

    public ParentEvent() {
        event = null;
        type = null;
        time = null;
        id = null;
    }

    public ParentEvent(String type, String id, Date time, Object event) {
        this.event = event;
        this.type = type;
        this.time = time;
        this.id = id;
    }

    public Object getEvent() { return event; }

    public void setEvent(Object event) { this.event = event; }

    // Other get/set methods removed for clarity
}

我如何将上述代码中引用的Object限制为扩展父类的Object?

2 个答案:

答案 0 :(得分:1)

你的意思是:

public class ParentEvent<T extends ParentEvent<?>>
{
    private T event;
    ...   
    public T getEvent() {...}
    ...
    public void setEvent(T event) { ... } 
}

然后,孩子是:

public class ChildEvent extends ParentEvent<ChildEvent>

答案 1 :(得分:0)

这不需要泛型。 private ParentEvent event;应该完全按照您的要求行事。您可能还想使ParentEvent成为抽象的。