我正在引用我的 Java 版本 JDK 1.8,但我仍然遇到错误。这个引用有什么问题(6 年后写 Java)?或任何其他更简单的方法来做到这一点?我做了一些搜索,这些功能在以后的 java 版本中可用。 Eclipse 是氧气
The method valueOf(Long) is undefined for the type Long
The method compareTo() is undefined for the type 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
最佳答案
MyComparator
的声明声明了一个通用类型的名称 Long
,然后是 shadows java.lang.Long
。你的类(class)不应该是通用的。此外,您不需要 Long.valueOf
,因为您已经拥有 Long
实例。更改它以删除通用的,例如
public class MyComparator implements Comparator<Long> {
@Override
public int compare(Long long1, Long long2) {
return long1.compareTo(long2);
}
}
关于Java Long Compare 和 ValueOf 方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46270157/