すべての注釈型は、java.lang.annotation.Annotationインタフェースを暗黙的に継承します。注釈インタフェースの目的は何ですか?
package java.lang.annotation;
public interface Annotation{
boolean equals(Object obj);
int hashCode();
String toString();
Class<? extends Annotation> annotationType();
}
しかし、注釈は、すべての注釈型の暗黙の祖先である注釈インターフェースから任意の要素を継承しません。私は以下を行うのであれば、コンパイル時エラーに
@CustomAnnotation(toString="toStringValue")
をなりますいくつかのいずれかは、アノテーションのインタフェースの目的が何であるか、その後
、私に説明してもらえますか?正確には が使用されていますか?
[JLS(9.6.1)](https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1):「これは注釈型で宣言されたメソッドのいずれかが、Objectまたはjava.lang.annotation.Annotationインタフェースで宣言されたパブリックメソッドまたは保護されたメソッドのオーバーライド同等のシグネチャを持つ場合、コンパイル時エラー。それはおそらくこのインタフェースの目的です(それを強制するため) –