给了我代码,必须填写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]));
    }
}

最佳答案

在main方法中创建的数组包含String对象,而不是testString对象。如果要比较testString类的实例,则创建这些对象的数组。

testString[] array1 = new testString[]{new testString("dog")...};


还要注意,类名应大写,变量以小写字母开头。

关于java - 我的程序似乎忽略了我编写的compareTo(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30293571/

10-13 05:07