I’m working on a project for class that involves generics.
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;
...
}
}
When trying to use the Course class within the declaration of MySearchTree, I receive a type argument error stating that “Course is not within the bounds of type-variable K”. I spent a good amount of time trying to figure out what attributes Course might be lacking to make it not fit the bill, but came up empty.
Any ideas?
In
MySearchTreetheKof the base type isCourse. SoKmust “extend”Comparable<Keyable<Course>> & Keyable<Course>. But it doesn’t, it extendsComparable<Keyable<DataElement>> & Keyable<DataElement>.I guess
DataElementshould be generified in a similar manner toComparableorEnum.