gpt4 book ai didi

java - 我应该如何覆盖 API 类的 equals 方法?

转载 作者:行者123 更新时间:2023-11-29 03:38:32 26 4
gpt4 key购买 nike

我正在使用 libGDX API 的 Vector2 类,如果我想检查两个 vector 是否相等,我必须执行以下操作:

Vector2 vectA = new Vector2(0, 1);
Vector2 vectB = new Vector2(1, 1);

if (vectA.x == vectB.x && vectA.y == vectB.y) {
return true;
}

这很不舒服,我正在考虑为这种情况创建一个 equals() 方法。哪个应该更好:

  1. 使用 equals(Vector2) 方法为 Vector2 类创建包装器
  2. 使用 equals(Vector2, Vector2) 方法创建 EqualUtil 类

第一个看起来更好(在我看来),但它可能不是一个“不错”的解决方案,而另一个更简洁但也有点简单。也欢迎不同的想法。

最佳答案

是的,你应该。

在我看来,最好创建一个 Wrapper(并且您还应该覆盖 hashCode() 以匹配新行为)。

这样做不仅会使代码更具可读性,还允许您使用诸如 HashSet 之类的集合。或依赖于 equals() 行为的其他方法。

这在逻辑上也是有意义的,因为您正在尝试创建一个方法来提供有关特定对象的数据 - 有什么更好的方法来显示它然后将其作为一个实例方法来实现?

关于java - 我应该如何覆盖 API 类的 equals 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14232333/

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