compareTo 是否适用于 double 类型?

Does compareTo work with double type?

我需要制作一个使用 compareTo 的程序,但我运行遇到了一些问题。

double sides1 = 1.0;
double sides2 = 1.3;
int compared = sides1.compareTo(sides2);

我总是 运行 出现这样的错误

Cannot invoke compareTo(double) on the primitive type double

我做错了什么,我该如何解决?

double 是原始类型,而不是 class :它没有方法。您应该改用 Double...并复习 Java 中的基础知识。不是冒犯,但问题是您需要基础知识才能高效编程。

PS : 你也可以使用静态方法 Double.compare

您不能在 double 等原始值上调用方法。但是你可以调用 Double.compare,它会为你比较两个原始 double

int compared = Double.compare(sides1, sides2);

您还可以直接使用比较运算符 ==!=<<=> 来比较原始 double 值和 >=.

原始类型不是 Java 对象,因此 compareTo 方法不存在。使用 Java Object Double 而不是原始类型:

Double sides1 = Double.valueOf(1.0);
Double sides2 = Double.valueOf(1.3);
int compared = sides1.compareTo(sides2);

编辑 - 不要认为所有 Java 对象都有 compareTo(..) 方法。 compareTo(..) 是 Comparable 接口的一部分 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html