Я пытаюсь определить интерфейс так, чтобы все реализующие классы были сопоставимы с собой и своими подклассами.
Например, рассмотрим:
public interface Rating implements Comparable<Rating> {}
Это означает, что реализующие классы должны быть сопоставимы со всеми рейтингами:
public class A implements Rating {
public int compareTo(Rating r) {return 0;}
}
Я хотел бы ослабить это требование, чтобы я мог определить класс как:
public class A implements Rating {
public int compareTo(A a) {return 0;}
}