Вот классы, которые я использую ...
public class MyBinarySearchTreePlus<T extends KeyedItem<KT>, KT extends Comparable<? super KT>>
extends MyBinarySearchTree<T, KT> implements BSTPInterface<T, KT> {
public MyBinarySearchTreePlus() {
super();
}
}
.
public class MyBinarySearchTree<T extends KeyedItem<KT>, KT extends Comparable<? super KT>>
extends BinaryTreeBasis<T> {
public MyBinarySearchTree() {}
}
.
public abstract class BinaryTreeBasis<T> {
protected TreeNode<T> root;
public BinaryTreeBasis() {
root = null;
}
}
.
public abstract class KeyedItem<KT extends
Comparable<? super KT>> {
private KT searchKey;
public KeyedItem(KT key) {
searchKey = key;
}
}
Ничто из того, что я пытаюсь создать, не создаст BinarySearchTree, я пытаюсь:
MyBinarySearchTreePlus<Integer, Integer> tree = new MyBinarySearchTreePlus<Integer, Integer>();
Я всегда получаю ошибку (исходя из первого параметра):
Bound mismatch: The type Integer is not a valid substitute for the bounded
parameter <T extends KeyedItem<KT>> of the type MyBinarySearchTreePlus<T,KT>
Какой тип объекта ищет T extends KeyedItem? Он не компилируется с сопоставимыми объектами, несопоставимыми объектами, примитивными объектами. Так что именно я должен использовать здесь? Я не понимаю, почему на первом месте даже 2, очевидно, 1 - это тип, который вы храните в дереве, а какой другой - 1? У меня также есть класс TreeNode типа T, если это имеет какое-либо значение.