有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

compareTo在java中的应用

我在读java中的compareTo,我有以下代码:

import java.util.Comparator;

public class Test {

    Comparator<String> caseInsensitive= new Comparator<String>() {
        @Override
        public int compare(String s, String b) {
            return s.compareTo(b);
        }
    };

    public static void main(String[] args) {

        Test t = new Test();
        System.out.println(((Comparator<String>) t).compare("baba","baba"));

    }

}

当我运行它时,会收到以下错误消息:

Exception in thread "main" java.lang.ClassCastException: Test cannot be cast to java.util.Comparator
    at Test.main(Test.java:15)

如何纠正


共 (1) 个答案

  1. # 1 楼答案

    您的Test类未实现Comparator<String>,因此无法将其强制转换为此类型。它包含一个实现该接口的成员

    这将有助于:

    System.out.println(t.caseInsensitive.compare("baba","baba"));
    

    或者您可以更改Test类以直接实现Comparator<String>

    public class Test implements Comparator<String> {
    
        @Override
        public int compare(String s, String b) {
            return s.compareTo(b);
        }
    
        public static void main(String[] args) {   
            Test t = new Test();
            System.out.println(t.compare("baba","baba"));
        }
    
    }