0

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

<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
}

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

4

2 回答 2

1

你是这个意思吗:

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

然后,孩子是:

public class ChildEvent extends ParentEvent<ChildEvent>
于 2013-06-24T12:43:07.453 回答
0

这不需要泛型。private ParentEvent event;应该做你所追求的。您可能还想使 ParentEvent 抽象。

于 2013-06-24T12:44:59.350 回答