当前位置: 首页 > 知识库问答 >
问题:

错误:绑定不匹配,collections.sort,interface,compareTo方法

贺宏富
2023-03-14
package Chapter10;

public interface Comparable<T> {
    public int compareTo(T other);
}
package Chapter10;

public class CalendarDate implements Comparable<CalendarDate> {
    private int month;
    private int day;

    public CalendarDate(int month, int day) {
        this.month = month;
        this.day = day;
    }

    public int compareTo(CalendarDate other) {
        if (month != other.month) {
            return month - other.month;
        }
        else {
            return day - other.day;
        }
    }

    public String toString() {
        return month + "/" + day;
    }
}
package Chapter10;

import java.util.*;

public class CalendarDateTest {
    public static void main (String[] args) {
        ArrayList<CalendarDate> birthday = new ArrayList<CalendarDate>();
        birthday.add(new CalendarDate(1, 23));
        birthday.add(new CalendarDate(5, 18));
        birthday.add(new CalendarDate(12, 17));
        birthday.add(new CalendarDate(2, 29));
        birthday.add(new CalendarDate(8, 6));

        System.out.println("birthdays = " + birthday);
        Collections.sort(birthday);
        System.out.println("birthdays = " + birthday);
    }
}

共有1个答案

左丘智渊
2023-03-14

问题是您重新定义了Java已经定义的carable 接口。就Java而言,这是两个完全不同、互不相关的接口,尽管名称相同。collections.sort方法知道java.lang.carable ,但它不知道chapter10.carable

从项目中删除comparable.java文件,重新编译并运行;这应该能解决问题。

在IdeOne上运行演示。

 类似资料:
  • 问题出在行collections.sort(acoesProcessar);我得到的信息是: 绑定不匹配:类型集合的泛型方法不适用于参数()。推断的类型不是有界参数

  • 问题内容: 我收到以下错误: 我正在尝试登录并返回一个HomePage(如果成功),以及一个LoginPage(如果不使用泛型)。 我有一个基类,Page,由SecuredPage扩展,用于登录墙后面的页面。我写了一个通用的辅助方法,可以构造任何类型的页面。LoginPage上的登录方法使用此方法。LoginPage扩展Page,而HomePage扩展SecuredPage。SecuredPage

  • 应该如何声明“GenericBo Bo”实例?正确的代码是什么?

  • 问题内容: 我正在创建一个词解析类,并在运行此命令时始终收到“ < main .Word_Parser实例位于0x1037dd3b0>的绑定方法Word_Parser.sort_word_list ”的错误: 问题答案: 这里没有错误。您正在打印一个函数,这就是函数的外观。 要实际 调用 该函数,必须在其后放置括号。您已经在上面完成了。如果要打印调用函数的结果,只需让函数返回值,然后将打印内容放在

  • 问题内容: 我试图根据类A的int排序类B中名为BinOrder的类型A的列表。 但是我收到此错误行Collections.sort(BinOrder); A类: B级: 问题答案: 为了能够使用单参数版本上的,应该实现的接口:

  • 下面是一个通用搜索算法的实现: 接口: (方括号=弧形括号) 问题出在哪里?我想不通...对泛型参数T也进行了扩展。