我有一个通用抽象类 ,BString
它期望其类型之一实现Comparable
. 另一个类NGram
extends作为可比类型BString
传递。String
最后一堂课,BinarySearchTree
需要扩展的键Comparable
。
为什么我无法创建一个BinarySearchTree
withNGram
作为键类型?我在下面包含了类声明,请注意虽然BString
覆盖了compareTo
,NGram
但没有。
当我实际创建 时BinarySearchTree
,如代码的最后一行所示,我收到以下消息:
绑定不匹配:类型
NGram
不是<K extends Comparable<K>>
类型的绑定参数的有效替代BinarySearchTree<K,V>
下面是代码。
public abstract class BString<Alphabet extends Comparable<Alphabet>> implements Iterable<Alphabet>, Comparable<BString<Alphabet>> {
protected FixedSizeFIFOWorkList<Alphabet> str;
}
public BString(Alphabet[] str) {
this.str = new CircularArrayFIFOQueue<Alphabet>(str.length);
for (int i = 0; i < str.length; i++) {
this.str.add(str[i]);
}
}
public class NGram extends BString<String> {
public NGram(String[] str) {
super(str);
}
}
public class BinarySearchTree<K extends Comparable<K>, V>
extends ComparableDictionary<K, V> {
// The root of the BST. Root is null if and only if the tree is empty.
protected BSTNode root;
/**
* Create an empty binary search tree.
*/
public BinarySearchTree() {
super();
this.root = null;
}
}
new BinarySearchTree<NGram,Dictionary<AlphabeticString, Integer>>()
慕婉清6462132
幕布斯7119047
相关分类