java - 泛型和接口(interface)实现

标签 java generics

我尝试对下面的话题发表评论,但我没有足够的代表点数。
我的简单问题是:以下两个代码有什么区别?

请注意:我不确定前者是否是有效语法,也许这就是答案。

public class BinarySearchTree<T> extends Comparable<T> {}

public class BinarySearchTree<T extends Comparable<T>> {}

Java : How do I implement a generic Binary Search Tree?

最佳答案

public class BinarySearchTree<T> extends Comparable<T> {}

树是 Comparable 的,可以容纳任何类型。树对象将根据它们持有的类型进行比较。也许您只比较树的根元素?
这是无效的,因为 Comparable 是一个接口(interface);您不能从接口(interface)扩展类。

public class BinarySearchTree<T extends Comparable<T>> {}

树只能包含 Comparable 类型。这是有效的。

您可以将两者组合成以下内容:

public class BinarySearchTree<T extends Comparable<T>> implements Comparable<BinaryTree<T>> {}

关于java - 泛型和接口(interface)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51126104/

相关文章:

java - 在单个 Activity 中动态实现多个 fragment

java - 我如何编写一个每个人都看到的公共(public)计时器?

c# - 将泛型类型参数限制为数字类型

generics - 有什么方法可以在 Kotlin 中从相同的通用接口(interface)继承两次(使用不同的类型)?

java - 网 bean : Setting up java cross-compilation

swift - 用幻像类型解码泛型

java - Azure Iot集线器Device vs. Service SDK是否可以从Device twin获得所需的属性?

Javafx 部署问题

Java JSON 返回一个数组作为值

c# - Func<...> args 有 "unnamed"个参数。有没有办法给它们命名?