加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java compareTo()方法返回classCastException

发布时间:2020-12-15 04:20:35 所属栏目:Java 来源:网络整理
导读:假设我有一个Employee基类和Manager子类,它扩展了Employee.Now假设我创建一个类型为Employee的对象x和一个类型为Manager的对象y,并调用x.compareTo(y)触发没有异常并比较x和y因为员工即y被强制转换为员工,但当我调用y.compareTo(x)时,我得到一个classCastExc
假设我有一个Employee基类和Manager子类,它扩展了Employee.Now假设我创建一个类型为Employee的对象x和一个类型为Manager的对象y,并调用x.compareTo(y)触发没有异常并比较x和y因为员工即y被强制转换为员工,但当我调用y.compareTo(x)时,我得到一个classCastException.我需要知道为什么会发生这种情况以及如何阻止x.compareTo(y)执行,因为x和y来自不同classes.My的想法是在Reflection类中使用getclass()方法,如下所示:

if (getClass() != other.getClass()) 
throw new ClassCastException();

我也想知道有没有其他方法来实现这一点.

解决方法

您应该在Employee类中实现compareTo()并使用以下命令启动它:

Employee o = (Employee)other;

然后继续将其与o进行比较 – 这将确保您比较两个员工(这是最低的共同标准).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读