【发布时间】: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