Monin Liao 2023-01-14 10:54 采纳率: 71.4%
浏览 13
已结题

Java实现泛型接口

package com.example;

import java.util.Arrays;

public class Main {
  
  public static void main(String[] args) {
    MyClass[] ms = {
      new MyClass("Monin",119),
      new MyClass("Annie",120),
      new MyClass("David",99)
    };
    Arrays.sort(ms);
    System.out.println(Arrays.toString(ms));
  }
}

interface Comparable<T> {
  public int compareTo(T o);
}

class MyClass implements Comparable<MyClass> {
  private String name;
  private int num;
  
  public MyClass(String name, int num) {
    this.name = name;
    this.num = num;
  }
  
  public int compareTo(MyClass m) {
    return this.name.compareTo(m.num);
  }
  
  public String toString() {
    return name + ":" + num;
  }
}

报错:

java.lang.ClassCastException: com.example.MyClass cannot be cast to java.lang.Comparable
    at java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:320)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:188)
    at java.util.Arrays.sort(Arrays.java:1239)
    at com.example.Main.main(Main.java:13)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.duy.android.compiler.java.Java.run(Unknown Source:335)
    at com.duy.ide.javaide.run.activities.ExecuteActivity.executeDex(Unknown Source:42)
    at com.duy.ide.javaide.run.activities.ExecuteActivity.exec(Unknown Source:19)
    at com.duy.ide.javaide.run.activities.ExecuteActivity.access$100(Unknown Source:0)
    at com.duy.ide.javaide.run.activities.ExecuteActivity$1.run(Unknown Source:8)
    at java.lang.Thread.run(Thread.java:929)

怎么回事?如何改?

  • 写回答

2条回答 默认 最新

  • pzzhao 2023-01-14 11:16
    关注

    你的MyClass 需要实现的是java.lang 包下的Comparable接口,而不是你自定义的Comparable接口,把你自定义的这个 Comparable 接口删掉,重新导包就好了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月14日
  • 已采纳回答 1月14日
  • 创建了问题 1月14日

悬赏问题

  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥15 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环
  • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!
  • ¥100 Excel 点击发送自动跳转outlook邮件