我已经设置了以下类(class):

public abstract class Process<T,S> {
    ...
}

public abstract class Resource<T, S extends Process<T, S>> {
    protected S processer;
    ...
}

public class ProcessImpl<EventType1, EventType2> {
    ...
}

public class ResourceImpl extends Resource<EventType1, ProcessImpl> {
    processer = new ProcesserImpl();
    ...
}

一切都很好,直到我到达ResourceImpl为止。有人告诉我ProcessImpl不能有效替代<S extends Process<T,S>>类型的有界参数Resource<T,S>

我尝试了各种方法来解决这个问题,并不断撞墙。

有人有什么想法吗?

最佳答案

public class ProcessImpl<EventType1, EventType2> {
...
}

因为ProcessImpl不会扩展 Process。您的ProcessImpl不是从Process派生的,这就是您声明该参数应该是的。

10-07 14:35