我需要创建一个使用compareTo的程序,但我遇到了问题。
double sides1 = 1.0;
double sides2 = 1.3;
int compared = sides1.compareTo(sides2);
我总是遇到一个错误,说
Cannot invoke compareTo(double) on the primitive type double
我做错了什么,我该如何解决?
答案 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