【问题标题】:Java Long Compare and ValueOf method undefinedJava Long Compare 和 ValueOf 方法未定义
【发布时间】:2017-09-18 00:46:52
【问题描述】:

我引用了我的 Java 版本 JDK 1.8,但仍然出现错误。这个引用有什么问题(6年后写Java)?或任何其他更简单的方法来做到这一点?我做了一些搜索,这些功能在以后的 java 版本中可用。 Eclipse 是Oxygen

方法 valueOf(Long) 未定义 Long 类型

方法 compareTo() 未定义 Long 类型

import java.util.Comparator;
import java.lang.Long;

public class MyComparator<Long> implements Comparator<Long>{
    @Override
    public int compare(Long long1, Long long2) {    
        //Long.compareTo()
          return Long.valueOf(long1).compareTo(Long.valueOf(long2));
    }
}

而JDK指向

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

【问题讨论】:

  • 你为什么写&lt;LONG&gt;
  • 我在发布问题后才注意到:)

标签: java long-integer comparator


【解决方案1】:

您的MyComparator 声明声明了名称Long 的泛型类型,然后阴影 java.lang.Long。你的课程不应该是通用的。此外,您不需要Long.valueOf,因为您已经拥有Long 实例。更改它以删除泛型,例如

public class MyComparator implements Comparator<Long> {
    @Override
    public int compare(Long long1, Long long2) {
        return long1.compareTo(long2);
    }
}

【讨论】:

  • 谢谢,发布问题后才注意到:)
【解决方案2】:

或者,您可以随时调用Comparator&lt;Long&gt; 或任何其他实现Comparableclass

Comparator.naturalOrder()

https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#naturalOrder--

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2019-12-02
    • 2022-12-23
    • 2016-06-07
    • 1970-01-01
    相关资源
    最近更新 更多