【发布时间】:2012-06-06 10:05:32
【问题描述】:
我想实现一个通用类型的二叉搜索树。声明如下:
public BTNode<T> {}
public class BinaryTree<T extends Comparable<T>> {}
public class BinarySearchTree <T extends Comparable<T>> extends BinaryTree<T> {}
现在我编写了一个名为 Entry 的类,并希望将此类的实例存储在 BinarySearchTree 中。
public class Entry implements Comparable{
private String firstName, lastName, address, phoneNumber;
public Entry(String fName, String lName, String address, String phoneNum) {
this.firstName = fName;
this.lastName = lName;
this.address = address;
this.phoneNumber = phoneNum;
}
public int compareTo(Object arg0) {
// TODO Auto-generated method stub
return 0;
}
}
但是当我声明BinarySearchTree<Entry> bst时,总是有一个编译错误说:
"绑定不匹配:类型 Entry 不是 有界参数 > 类型 二叉搜索树"
我对 Java 中的泛型类型还是很陌生。有人可以帮我解决问题吗?谢谢
【问题讨论】:
-
<T extends Comparable<T>>你界面中的这一行应该是<T implements Comparable<T>> -
不,
> 是正确的! -
@HunterMcMillen 不,不应该:
extends用于泛型,无论类或接口如何。如果你想说extends Foo implements Bar,那么你使用<T extends Foo & Bar> -
为了获得最佳效果,请使用
<T extends Comparable<? super T>>
标签: java generics binary-search-tree