java - 创建一个包含仅限于子类的对象的父类

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

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

最佳答案

你的意思是:

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

然后, child 是:

public class ChildEvent extends ParentEvent<ChildEvent>

关于java - 创建一个包含仅限于子类的对象的父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17275724/

相关文章:

java - VS Code 标志 System.out.print

java - 解析 PL/SQL 代码以检查语法和语义错误

java - 如何删除添加到膨胀的 LinearLayout 的 View 之间不需要的空格?

java - Mapbox SDK : Changing a marker position at runtime

不同操作系统下的 Java 程序效率

java.net.SocketTimeoutException : Read timed out while downloading google spreadsheet

java - 如何同步文件明智的文件编写器对象?

java - Eclipse 不更新 JSP scriptlet 中的自定义方法

java - 将数据保存到文件 - 什么对象应该负责?

java - Android:日期字符串转日期格式