【发布时间】:2021-03-23 16:15:22
【问题描述】:
我正在创建一个酒店,我的客户存储在树形结构中,因此可以轻松搜索。
我的 Client 类有 2 个 compareTwo 方法。一个用于将客户端与另一个客户端进行比较,另一个用于将其与 int 进行比较。 Client 应该是可比较的类型,因为它位于实现 Comparable 的树结构中。
//compare Client to int
public int compareTo(int arg0) {
int result = this.clientId.compareTo(arg0);
return result;
}
//compare Client to object
public int compareTo(Object o) {
return (this.clientId).compareTo(((Client)o).clientId);
}
但它并没有达到预期的效果。每次调用此函数时,它都会使用 compareTo(Object) 方法并返回我的 int 无法转换为客户端的错误。我想这是因为 Object 是 int(?) 的超类,但不太知道如何修复它。我尝试解决此问题,但似乎无法在不更改我的整个代码的情况下解决它。
感谢您的帮助!
【问题讨论】:
-
哪里有问题的代码?
-
正如@akuzminykh 所说,您展示的代码本质上没有任何问题。我们需要看看你是如何尝试使用它的——这就是问题所在。
标签: java class casting overloading