我正在尝试在这个用例中使用 Java 泛型,并且在网上找不到任何答案后需要一些帮助来弄清楚如何实现它。这是我的用例....// Interface DevObject public interface DevObject { void addExtension(DevExtension extension);}// Interface DevExtension public interface DevExtension<T extends DevObject> { void start(T devObject); }然后我创建了两个分别实现 DevObject 和 DevExtension 的类,就像这样......public class MyDevObject implements DevObject { void addExtension(DevExtension extension) { }}public class MyDevObjectExtension implements DevExtension<MyDevObject> { void start(MyDevObject devObject) { }}但我真正想要做的是使用泛型来修改 DevObject 上的 addExtension 方法,这样它就只能添加具有与实现 DevObject 的类相同的泛型 T 值的 DevExtension 实例。任何帮助,将不胜感激。
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
您正在寻找CRTP:
public interface DevObject<T extends DevObject<T>> {
void addExtension(DevExtension<T> extension);
}
public interface DevExtension<T extends DevObject<T>> {
void start(T devObject);
}
添加回答
举报
0/150
提交
取消