注释Java类是安全的参考比较

use*_*413 7 java equality equals intellij-idea multiton

我有一个多圈的类,所以我知道给定一个特定的键,永远不会有两个相同类的实例存在.这意味着,而不是:

if (someObject.equals(anotherObject))
Run Code Online (Sandbox Code Playgroud)

......我这样做是安全的:

if (someObject == anotherObject)
Run Code Online (Sandbox Code Playgroud)

这个类也是final,所以我知道任何与多态相关的东西都可能导致比较问题.

IDEA尽职尽责地告诉我,直接比较两个实例和我应该使用的风险是有风险的.equals(),但我知道它不是在这种情况下.是否有一些注释我可以应用于我的类来指示IDEA,以及可能的其他编辑,更重要的是其他用户,我的班级实例上的相等性的直接参考比较是安全的吗?

我知道我可以告诉IDEA抑制警告,但我必须为这两种类型或全局之间的每一次比较做到这一点,这两者都不是一个好主意.另外,更重要的是,我让我班级的用户知道它安全,更快,甚至更喜欢(说服我).equals().

yol*_*ole 1

IntelliJ 检查有一个选项“忽略仅具有私有构造函数的类型的对象之间的 '=='”。如果我理解正确,启用此选项将关闭您的情况下的突出显示。

目前 IntelliJ IDEA 不可能忽略==基于注释的比较。