new Line2D.Double(0,0,1,1).equals(new Line2D.Double(0,0,1,1)) // false
为什么平台设计人员选择不在Line2D上覆盖.equals
,但是在Point2D上覆盖了它?
答案 0 :(得分:3)
为什么班上的设计师选择不重写等于的答案只能由他们来回答。
但我会提出我的想法:没有什么特别说明两条线同一条线只是因为它们有相同的端点。
考虑一个显示一堆随机线条的程序。如果其中两个碰巧重叠,它们应该相等吗?如果我使用Set来跟踪这些行,我是否应该无法添加与现有行重叠的另一行?
你或许可以争辩一个答案,但我可以反驳 - 这就是为什么他们让我们自己决定。
答案 1 :(得分:3)
我们只能推测。两个可能的原因:
这会产生什么样的结果?
new Line2D.Double(0,0,1,1).equals(new Line2D.Double(1,1,0,0))
他们看起来相同,但 他们是否相同?完全没有覆盖.equals()
可以避免争议。