java - 比较泛型

标签 java generics

您好,我正在尝试通过使用 Comparable 接口(interface)扩展泛型来比较两个对象:

public class Tree<K extends Comparable<K>>
{
    Node<K> treeNode;

    // Some initialization stuff

    public void test(Node<K> node)
    {
         // Some code

         // This line fails
         if(node.getKey() > treeNode.getKey())
         { ... }

         // Rest of the code
    }
}

public interface Node<K extends Comparable<K>>
{
    // Some code
    public K getNode();

    // Some more code
}

但由于某种原因,比较运算符无法被识别。我认为通过扩展可比较,我可以开始使用这样的运算符。我究竟做错了什么。谢谢。

最佳答案

Comparable不允许您使用 <>进行比较,就像 ListMap不要让你使用[]用于项目访问。您需要调用 compareTo 方法,通过返回小于、大于或等于0的整数来指示比较结果。

关于java - 比较泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615142/

相关文章:

java - JAX-WS (JAXB) : How to marshall java. util.Date 到 xs :anyType as xs:date instead of xs:dateTime?

java - 如何从 JBoss AS 7 上的(可能是远程的)Web 应用程序访问 OSGi 服务?

python - python 中的通用函数 - 调用参数数量未知的方法

c# - 如何将通用 Tryparse 与枚举一起使用?

c# - 检查通用类型

java - 一起使用 BufferedReader 和 InputStream

java - BorderLayout 中的 GridBagLayout 问题 : no display in BorderLayout. CENTER

java - 将 jar 导入 lucene ant 构建脚本

java - 链接方法时不能依赖目标类型

c++ - 在模板中指定允许的参数