gpt4 book ai didi

java - Java equals 方法的良好设计

转载 作者:行者123 更新时间:2023-11-30 06:55:38 24 4
gpt4 key购买 nike

我看过这个:

// Returns whether o refers to a Point object with  
// the same (x, y) coordinates as this Point object
public boolean equals(Object o) {
if (o instanceof Point) {
Point other = (Point) o;
return x == other.x && y == other.y;
} else {
return false;
}
}

为什么要求 equals 方法的参数采用 Point 对象不是更明智(也更简单)。然后,如果我们尝试将一个 Point 与一个非 Point 进行比较,那么编译器将捕获它。那不是更好吗?

最佳答案

因为这样它就不会覆盖 Object.equals ,这是许多标准库算法用于检查两个对象是否相等的方法。

许多这些算法可以对不同类型的对象进行操作,这使得 equals 有必要将您的对象与任何其他类中的一个进行比较。

关于java - Java equals 方法的良好设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35108230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com