java - 有什么方法可以实现比较任何提供的参数的 compareTo 方法吗?

标签 java generics compareto

编译器说“找不到符号:方法 compareTo(java.lang.Object)”。能否请您指点这里的错误在哪里?

部分代码如下:

public class OBTComparable<ObjectType> implements Comparable<OBTComparable>
{
    public OTBComparable leftNode = null;
    public OBTComparable mainNode = null;
    public OBTComparable rightNode = null;
    public ObjectType object = null;

    public OBTComparable(ObjectType requiredObject)
    {
        object = requiredObject;
    }

    @Override
    public int compareTo(OBTComparable other)
    {
        if(object.compareTo(other.object) == 0)
            return 0;
        else 
            if (object.compareTo(other.object) > 0)
                return 1;
            else return -1;
    }
}

最佳答案

您需要范围 ObjectTypeComparable也是,因为OBTComparabledelegating compareTo()ObjectType :

如果你改变<ObjectType><ObjectType extends Comparable<ObjectType>> ,它将编译:

public class OBTComparable<ObjectType extends Comparable<ObjectType>> implements Comparable<OBTComparable>

关于java - 有什么方法可以实现比较任何提供的参数的 compareTo 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9951588/

相关文章:

java - Grails Mail 插件异常处理

c# - 如何在 C# 中将类型为 `object` 的变量转换为具有泛型类型的类?

Java PriorityQueue 的顺序似乎错误

java - 如何使用 Java 的 Comparable 来比较树中的通用对象?

java - 使用 iText 删除指定区域中出现的文本

java - 使用@JsonCreator 和@JsonProperty 未按预期生成 Json 响应

java - Lambda 表达式在运行时失败并出现 java.lang.BootstrapMethodError

c# - Parser Front 上的泛型和挑战

java - 使用 .compareTo 比较日期时,为什么不考虑月份?

java - RTI DDS Qos 配置文件历史未按预期工作