我正在开发一个独立的,自包含的组件,它需要特定于域的部分才能正常运行。这个想法的一部分是创建一个通用接口,它将在该组件的另一部分中解决接口实现的使用(在我的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中的type参数类型相同?是否有一个明显的解决方案,或者这只是一个糟糕的设计的结果?如果是这样,那会是更好的方法吗?
答案 0 :(得分:4)
看起来你想要的是:
public class B<S,T extends A<S>> {
private T t;
public S getTsSomething(){
return t.f1();
}
}