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日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装