java我的程序似乎忽略了我写的compareTo()
我得到了代码,必须填写compareTo
部分。不管出于什么原因,即使我注释掉我的compareTo
代码,Java在调用它时仍然会给我一个结果,这让我相信我一定是调用错了。这件事让我不知所措
import java.util.Arrays;
public class testString implements Comparable<testString> {
String tempStr;
public testString(String str) {
tempStr = str;
}
public String toString() {
return tempStr;
}
public int compareTo(testString Str2) {
String temp = Str2.toString();
int temp1 = temp.length();
if (tempStr.length() > temp1) {
return 1;
} else if (tempStr.length() < temp1) {
return -1;
} else {
return 0;
}
}
public static void main(String[] args) {
String [] Array1 = new String[]{"dog","giraffe","python","emu","elephant","cow"};
System.out.print(Array1[1].compareTo(Array1[0]));
}
}
# 1 楼答案
在main方法中创建的数组包含
String
个对象,而不是testString
个对象。如果要比较testString
类的实例,请创建这些对象的数组还要注意,类名应该大写,变量以小写字母开头
# 2 楼答案
因为
Array1
是String
的数组所以它从String
调用compareTo
你可能想要的是:
作为旁注:
TestString
)李>array1
)李>您应该使用
@Override
注释:这将导致编译器错误,并在出现问题且您实际上没有重写时发出警告。(例如输入错误或参数类型不正确。)