我有几个提供的接口
public interface Finder<S extends Stack<T>,T extends Item> {
public S find(S s, int a);
}
public interface Stack<T extends Item> {
Stack<T> getCopy();
}
和一个实现第一个的类:
public class SimpleFinder<S extends Stack<T>,T extends Item> implements Finder<S,T>{
public S find(S s, int a){
S stack = ....;
...
stack = s.getCopy(); \\Error: incompatible types
\\ required: S
\\ found: Stack<T>
.....
return stack;
}
}
如果我不能更改任何接口,那么在保持实现尽可能通用的同时最好的做法是什么?
编辑
其他一些我无法打破实例化的代码, SimpleFinder<ClassA,ClassB>
所以我在实现中也应该有两种泛型类型。