假设我有一个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进行比较 – 这将确保您比较两个员工(这是最低的共同标准).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。