Java 泛型 class 包含泛型接口实现的实例

Java generic class that contains an instance of implementation of generic interface

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

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

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

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

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

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

问题:

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

看来你想要的是:

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

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