私はいくつかの提供されたインターフェースを持っています
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>
ため、実装にも2つのジェネリック型が必要です。