我有一个多例模式的类,所以我知道给定特定的键,同一个类的两个实例永远不会存在。这意味着,不需要:
if (someObject.equals(anotherObject))
我可以安全地执行这个操作:
if (someObject == anotherObject)
这个类也是final
的,因此我知道与多态有关的任何问题都不会对比较造成问题。
IDEA认真地告诉我直接比较两个实例是有风险的,我应该使用.equals()
,但在这种情况下我知道它是不必要的。是否有一些注释可以应用于我的类来指示IDEA,以及其他编辑器和更重要的其他用户,在我的类的实例上进行直接引用比较是安全的?
我知道我可以告诉IDEA抑制警告,但我必须为这两种类型之间的每个比较或全局执行此操作,这两种方法都不是一个好主意。此外,更重要的是让我的类的用户知道它是安全的、更快的,甚至是首选(说服我否则)而不是使用.equals()
。
.equals
进行辩论:如果你只让.equals
引用引用相等,它应该会优化成==
,而用户就不必记住有些对象可以使用==
,而有些不能。他们可以在任何地方都使用.equals
,它的性能和==
一样好。 - Louis WassermanNullPointerException
是合适的结果。 - Louis WassermanObjects.equals(a, b)
ж—¶пјҢе…¶дёӯObjects
жҳҜjava.util.Objects
гҖӮ - Louis Wasserman