当前位置: 首页 > 知识库问答 >
问题:

Java override compareTo,Long

夹谷辰沛
2023-03-14

我有一个实现可比较接口的类。在这个类中,我需要重写compareTo方法,以便按Long值对对象进行排序。

我不知道的是如何执行Long类型的比较。当试图检查值是否大于或小于另一个Long值时,我会出错。我知道Long是long的对象,但不知道如何比较两个Long。

代码示例:

public int compareTo(MyEntry<K, V> object) {
    if (this.value < object.value)
        return -1;
    if (this.value.equals(object.value))
        return 0;

    return 1;
}

错误消息

           operator < cannot be applied to V,V
if (this.value < object.value)
                       ^

五、 V很长,很长

共有3个答案

山乐生
2023-03-14

它看起来像这样:

@Override
public int compareTo(MyEntry<K, V> object) {
        if (object == null) {
            throw new NullPointerException("Null parameter");
        } else if (!this.getClass().equals(object.getClass())) {
            throw new ClassCastException("Possible ClassLoader issue.");
        } else {
            return this.longValue.compareTo(object.longValue);
        }

}

巧合的是,我们最近做了一个关于Java中比较的教程。也许它能帮你。

萧晔
2023-03-14
Long l1 = new Long(3);
Long l2 = new Long(2);

return l1.compareTo(l2);

简单的没有?

甄坚白
2023-03-14

你的问题是MyEntry

return this.value.compareTo(object.value);

但如果出于某种原因需要手动执行,请执行以下操作:

public int compareTo(MyEntry<K, V> object) {
    if ((Long) this.value < (Long) object.value)
        return -1;
    if (this.value.equals(object.value))
        return 0;

    return 1;
}
 类似资料:
  • 问题内容: 关于我们教授给出的指导课程,我有一个简单的问题。我已经看过几次serialVersionUID,但是我没有什么用。 什么是利用程序中的? 问题答案: 该是一个通用版本标识符类。反序列化使用此数字来确保已加载的类与序列化的对象完全对应。如果未找到匹配项,则抛出。

  • 问题内容: 我需要使用反射获取字段的值。碰巧我并不总是确定该字段的数据类型是什么。为此,为了避免某些代码重复,我创建了以下方法: 并使用如下方法: 要么 问题是我似乎无法转换为: 有没有更好的方法来实现这一目标? 我正在使用Java 1.6。 问题答案: 不,即使可以从转换为,也无法转换为。对于已知为数字的 单个 值,并且想要获得长整型值,可以使用: 对于数组,这将比较棘手…

  • 问题内容: 如何在Java中将值转换为值? 问题答案: 或如果您不必担心null: 在这两种情况下,您都可能会遇到溢出问题(因为Long可以比Integer存储更大的范围)。 Java 8有一个辅助方法来检查溢出(在这种情况下,您会得到一个异常):

  • 问题内容: 所以我正在学习Java,但是我有一个问题。看来,类型,并且将是只是我会永远需要的变量方面的一切,也许除外好时,需要在多个十进制数字都可以使用。 我的问题是,其他类型的如,,,等曾经在正常的日常编程中使用?这些可以用于哪些实际用途?它们的作用是什么? 问题答案: 除了“ short”(可能是对空间的浪费)之外,“ short”可能是一个例外-有时候,从字面上看,它们都是上课的动力: 当您

  • 问题内容: 如何将字符串转换为long。 为了你 所以你怎么走却又漫长。 问题答案: 这是一种常用的方法: 还有一种方法:区别在于返回原语而返回对象。

  • 问题内容: 我读到JVM在内部存储短,整数和长为4个字节的内容。我是从2000年的一篇文章中读到的,所以我不知道现在有多真实。 对于较新的JVM,使用short而不是integer / long可以提高性能吗?自2000年以来,实施的那部分是否发生了变化? 谢谢 问题答案: 使用您需要的东西,我认为短裤由于范围小而很少使用,并且采用大端格式。 任何性能上的提升都是最小的,但是就像我说的,如果您的应

  • 问题内容: 我正在从硬件设备读取8字节的数据。我需要将它们转换为数值。我想将它们转换为适合8个字节的长度。我对Java和低级数据类型操作不是很熟悉。我似乎有两个问题(除了几乎没有有关硬件的文档的事实外),这些字节期望是无符号的,所以我无法进行直接整数转换。我不确定它们是什么字节序。 任何意见,将不胜感激。 最终结束了(摘自一个星期前我可能应该已经读过的一些源代码): 问题答案: 对于字节序,请测试

  • 问题内容: 我有以下代码: O / P: O / P: O / P: O / P: 我已经尝试过使用Google,但是找不到原因。如果问题很简单,我们感到抱歉。 问题答案: 答案似乎都没有涉及 为什么 采取不同的行动。 1.为什么发生 您看到的和之间的行为差​​异是由于IEEE-754 舍入 规则引起的。 应用的舍入规则:摘自Java™虚拟机规范 §2.8.1 Java虚拟机的舍入操作始终使用IE