Jeder Annotationstyp erbt implizit die java.lang.annotation.Annotation Schnittstelle.Was ist der Zweck der Annotation-Schnittstelle?
package java.lang.annotation;
public interface Annotation{
boolean equals(Object obj);
int hashCode();
String toString();
Class<? extends Annotation> annotationType();
}
Aber eine Anmerkung erben keine Elemente aus der Annotation-Schnittstelle, die eine implizite Vorfahre aller Annotationstypen ist. Also, wenn ich unten tun, führt zu der Kompilierung Fehler
@CustomAnnotation(toString="toStringValue")
Könnte jemand mir erklären, dann
was ist der Zweck der Annotation-Schnittstelle? und für was genau es verwendet wird?
Von dem [JLS (9.6.1)] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.1): „Es ist ein Fehler bei der Kompilierung, wenn eine in einem Annotation-Typ deklariert Verfahren eine Signatur aufweist, die zu der von einem öffentlichen oder geschützten Methode in der Klasse oder Objekt in der Schnittstelle java.lang.annotation.Annotation deklariert überschreiben-Äquivalent ist.“ so vielleicht ist das der Zweck dieser Schnittstelle (zu erzwingen, dass) –