Я обновляю некоторый код до Java 5 и явно не понимаю что-то с Generics. У меня есть другие классы, которые реализуют Comparable один раз, который я смог реализовать. Но теперь у меня есть класс, который из-за наследования пытается реализовать Comparable для 2 типов. Вот моя ситуация:
У меня есть следующие классы / интерфейсы:
interface Foo extends Comparable<Foo>
interface Bar extends Comparable<Bar>
abstract class BarDescription implements Bar
class FooBar extends BarDescription implements Foo
При этом я получаю сообщение об ошибке «Сопоставимый интерфейс не может быть реализован более одного раза с разными аргументами ...»
Почему я не могу реализовать CompareTo (Foo foo) в FooBar, а также CompareTo (Bar) в BarDescription? Разве это не просто перегрузка метода?
Редактировать: у меня есть много классов, которые расширяют BarDescription. Если я удаляю параметр типа для Comparable on Bar, оставляя его в исходном состоянии, то я получаю кучу предупреждений компилятора при сортировке всех классов, которые расширяют BarDescription. Будет ли это решено с ответом подстановочных знаков ниже? Этот ответ выглядит довольно сложным и трудным для понимания.