Я работаю над проектом для класса, который включает дженерики.
public interface Keyable <T> {public String getKey();}
public interface DataElement extends Comparable<Keyable<DataElement>>, Keyable<DataElement>, Serializable {...}
public class Course implements DataElement {...}
public interface SearchTree<K extends Comparable<Keyable<K>> & Keyable<K>> extends Serializable {...}
public class MySearchTree implements SearchTree<Course> {
...
private class Node {
public Course data;
public Node left;
public Node right;
...
}
}
При попытке использовать класс Course в объявлении MySearchTree я получаю сообщение об ошибке аргумента типа, указывающее, что «Course находится вне границ переменной типа K». Я потратил много времени, пытаясь выяснить, каких атрибутов может не хватать Курсу, чтобы он не отвечал всем требованиям, но ничего не вышло.
Есть идеи?