为什么当我们有==运算符时等于()方法?

2022-09-01 06:22:35

当我看到方法的实现时,它的作用与方法相同。所以我的问题是,当我们有做相同工作的运算符时,需要将其作为单独的方法吗?equals()====


答案 1

您不能重载运算符,但是如果您希望它的行为与运算符不同,则可以重写,即不比较引用,而是实际比较对象(例如,使用全部或部分字段)。==equals(Object)==

另外,如果您确实覆盖了 ,也请看一下。这两种方法需要兼容(即两个对象根据需要相等,具有相同的对象),否则会发生各种奇怪的错误(例如,将对象添加到集合或映射时)。equals(Object)hashCode()equals(Object)hashCode()


答案 2

==比较对象引用,并询问两个引用是否相同。

equals()比较对象内容,并询问对象是否表示相同的概念。


推荐