Java 如何检查注释的相等性?

Java 如何检查注释的相等性?,java,annotations,equals,Java,Annotations,Equals,您将如何实现此方法: public boolean equal(Annotation a1, Annotation a2) { ... } 示例输入(): 样本输出: false false true true 正如您所看到的,equal的预期行为是明确的,类似于java中常规对象的标准equals方法的预期行为(问题是我们无法覆盖注释的equals) 是否有任何lib或标准实现?for注释是否有效?也许我不明白你的问题。如果你想检查a1和a2是否是相同的注释。试试这个: a1.ann

您将如何实现此方法:

public boolean equal(Annotation a1, Annotation a2) {
   ...
}
示例输入():

样本输出:

false
false
true
true
正如您所看到的,
equal
的预期行为是明确的,类似于java中常规对象的标准
equals
方法的预期行为(问题是我们无法覆盖注释的
equals


是否有任何lib或标准实现?

for
注释是否有效?也许我不明白你的问题。

如果你想检查a1和a2是否是相同的注释。试试这个:
a1.annotationType().equals(a2.annotationType())

您能告诉我如何在注释类上重写
equals
(让我们以
@Sample
注释为起点;
equals
正文实际上并不重要,只要显示一下您将在何处编写它即可)。它已经在Java中用于注释了。默认值不适合你吗?你看过我提供的链接了吗?也许有一些误解……也许你是对的,我会调查它(只是不清楚它是如何工作的,因为实际的
equals
实现在其他地方,但不在
Annotation
类中)。
a1.equals(a2)将起作用。这是注释的默认行为-它检查注释的类型是否相同,以及每个注释字段是否相等。不需要特殊的工作环境。
false
false
true
true