【发布时间】:2020-12-14 10:24:32
【问题描述】:
我开发了一些大项目。我的代码的某些部分:
1)
private final ObjectPool<ProcessorMechanicsRoom> processorsPool;
... new ProcessorMechanicsRoom(processorsPool);
public class ProcessorMechanicsRoom
extends ProcessorMechanics<ProcessMechanicsRoom, IMechanicsRoom, IMechanicsRoomCallback> {
...
public ProcessorMechanicsRoom(ObjectPool<ProcessorMechanicsRoom> pool) {
}
super(pool); // the problem is here
}
public class ProcessorMechanics
<P extends ProcessMechanics<M,C>, M extends IAMechanics<C>, C extends IAMechanicsCallback>
extends Processor<P> {
private final ObjectPool<ProcessorMechanics<P,M,C>> pool;
...
public ProcessorMechanics(ObjectPool<ProcessorMechanics<P,M,C>> pool) {...}
...
}
问题是 ObjectPool
【问题讨论】:
-
编辑您的问题并显示编译错误的全文。在设计说明中,同时使用 ProcessMechanics 和 ProcessorMechanics 作为类名,以及 ProcessMechanicsRoom 和 ProcessorMechanicsRoom,非常令人困惑。我可能会尝试在我自己的私人代码副本中替换这些名称,以澄清问题,但现在,很难将它们区分开来,我放弃了尝试。如果您的代码更易于理解,您将获得更多帮助。
-
从逻辑上讲,ProcessorMechanicsRoom 可以转换为 ProcessorMechanics<...>。但我的 ide (intellij) 将其显示为错误。太合乎逻辑了!
标签: java oop generics extends generic-programming