我正在尝试创建一个包含对象元素的父类,但我想将此对象限制为扩展父类的类型。我尝试过使用
形式的泛型<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?
答案 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成为抽象的。