Java 泛型用例

标签 java generics


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

如有任何帮助,我们将不胜感激。

最佳答案

您正在寻找 CRTP :

public interface DevObject<T extends DevObject<T>> { 
    void addExtension(DevExtension<T> extension);
}

public interface DevExtension<T extends DevObject<T>> {
    void start(T devObject); 
}

关于Java 泛型用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52121043/

相关文章:

java - 需要部署 Java Web 应用程序的帮助

java - 如何仅在属性为 false 或未定义时加载 bean?

java - 重播实时收集的数据以模拟真实的流量延迟和消息排序

Java 导入错误

java - 通用数组转换异常

java - 在java中同步音频

c# 和 LINQ,其中集合成员的属性名称是通过函数传递的

java - 通用数组创建

c# - 反转 bool 值的通用方法

swift - 检查 Swift 通用数字是否高于其最大值的特定百分比