Przypisz podklasę klasy Generic do super klasy tej klasy

Mam kilka dostarczonych interfejsów

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();
}

i klasa, która implementuje pierwszą:

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;
    }


}

Jeśli nie mogę zmienić żadnego interfejsu, jaki byłby najlepszy sposób działania, utrzymując implementację tak ogólną, jak to możliwe?

EDYTOWAĆ Inny kod, którego nie mogę rozbić na instancjeSimpleFinder<ClassA,ClassB> więc powinienem mieć dwa typy ogólne w implementacji.

questionAnswers(5)

yourAnswerToTheQuestion