Java泛型用例

我正在尝试在这个用例中使用 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 实例。


任何帮助,将不胜感激。


幕布斯7119047
浏览 156回答 1
1回答

慕村225694

您正在寻找CRTP:public interface DevObject<T extends DevObject<T>> {&nbsp;&nbsp; &nbsp; void addExtension(DevExtension<T> extension);}public interface DevExtension<T extends DevObject<T>> {&nbsp; &nbsp; void start(T devObject);&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java