Прежде всего, вот полная ошибка (которая связана с тем, что MathSubset не получает правильный параметр): Bound mismatch: The type S is not a valid substitute for the bounded parameter <T extends Comparable<T>> of the type QifFixer.MathSubset<T>
Проблема в том, что MathSubset ожидает <T extends Comparable<T>
, но вы даетеэто S extends Solution<?>
- те типы, которые не имеют ничего общего друг с другом, потому что решение не наследует или не реализует Comparable<T>
.
Если что, вы можете попробовать это:
public class SolutionsSubset<S extends Comparable<S>> extends
MathSubset<S> implements Solutions<Solution<S>>;
К сожалению, это ВСЕ ЕЩЕ не сработает, потому что MathSubset реализует Iterable, но тоже делает Решения.
Было бы легко исправить, чтобы Решения не расширяли Iterable, но для меня действительно звучит так, будто вы пытаетесь использоватьболее сложный подход, чем нужно.Может быть, «has-a» вместо «is-a» может быть более полезным здесь?