首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java compareTo方法基础

Java compareTo方法基础
EN

Stack Overflow用户
提问于 2014-07-04 01:43:13
回答 7查看 1.3K关注 0票数 1

我对Java比较陌生,正在尝试解决一些基本问题。我的一个朋友请我解释一下这段代码会出什么问题。对我来说,它看起来非常好。我甚至试过了,它很管用。

你们能帮帮我吗?

代码语言:javascript
运行
复制
public int compareTo(Object o){
   Employee emp = (Employee) o;
   return this.id - o.id;
}

我找不到任何好的解释。id也是一个整数。

EN

回答 7

Stack Overflow用户

发布于 2014-07-04 01:49:14

Comparable是一个带有泛型的接口,因此它应该是Comparable<Employee>。(因此,您可以确定将员工与员工进行比较,而不是将员工与数字进行比较。)

代码语言:javascript
运行
复制
Employee emp = (Employee) emp;

讲得通?

emp转换为Employee,并将其放入emp中。也许你是说(Employee) o

代码语言:javascript
运行
复制
return this.id - o.id;

你使用的是o,也就是Object,而Object没有.id,也许你是说emp.id

票数 3
EN

Stack Overflow用户

发布于 2014-07-04 01:50:16

如果您确定id是唯一,且不存在整数溢出(这将需要负ids),则代码应按预期工作。另一方面,如果两个Emp (被认为是不同的)可以有相同的id (因为它不是我们期望的名称中的标识符),那么它可能导致这样一种情况,即两个Emp被认为是相等的,而实际上它们不是。

票数 1
EN

Stack Overflow用户

发布于 2014-07-04 01:50:49

您没有使用emp实例来做任何事情...如果您尝试将Employee (this)与始终为EmployeeObject o进行比较,则需要使用return this.id - emp.id;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24560138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档