【问题标题】:Java generic class that contains an instance of implementation of generic interface包含泛型接口实现实例的 Java 泛型类
【发布时间】:2015-08-25 16:55:52
【问题描述】:

我正在开发一个独立的、自包含的组件,它需要特定领域的部件才能正常运行。这个想法的一部分是创建一个通用接口,它将解决该组件的另一部分中接口实现的使用(在我的 B 类示例中)。

我为通用接口编写了以下示例:

public interface A<T> {
    public A f0(T t);
    public T f1();
}

API 使用者必须创建此接口的实现并将其实例传递给组件。然后该组件将创建以下 B 类的实例,该实例将包含接口实现的输入实例:

public class B<T extends A> {
    private T t;

    public X getTsSomething(){
        return t.f1();
    }
}

问题:

如何强制 X 与接口 A 中的类型参数类型相同?是否有明显的解决方案,或者这只是糟糕设计的结果?如果是这样,什么是更好的方法?

【问题讨论】:

    标签: java generics interface architecture


    【解决方案1】:

    看起来你想要的是:

    public class B<S,T extends A<S>> {
        private T t;
    
        public S getTsSomething(){
            return t.f1();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多