compareTo是否适用于双重类型?

时间:2015-04-09 22:29:25

标签: java double compareto

我需要创建一个使用compareTo的程序,但我遇到了问题。

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

我总是遇到一个错误,说

Cannot invoke compareTo(double) on the primitive type double

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

3 个答案:

答案 0 :(得分:6)

您无法调用原始值(如double s)上的方法。但是你可以拨打Double.compare,它将为你比较两个原始double

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

您还可以将原始double值直接与比较运算符==!=<<=>和{进行比较{1}}。

答案 1 :(得分:2)

基本类型不是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 Interface https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html

的一部分

答案 2 :(得分:1)

double是一个原始类型,而不是一个类:它没有方法。您应该使用Double代替...并查看Java中的基础知识。不要冒犯,但问题是你需要基础知识来有效地编程。

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