In diesem example unter Annotationstyp (@interface
):Welchen Vorteil hat die Verwendung von Annotationen über den Schnittstellentyp?
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}
wird auf interface
Art zusammengestellt:
interface annotationtype.ClassPreamble extends java.lang.annotation.Annotation{
public abstract java.lang.String author();
public abstract java.lang.String date();
public abstract int currentRevision();
public abstract java.lang.String lastModified();
public abstract java.lang.String lastModifiedBy();
public abstract java.lang.String[] reviewers();
}
So wird die Annotation Typ interface
Typ, vor der Laufzeit kompiliert zu werden.
In Java, Was ist der Vorteil der Verwendung von Annotation Typ (@interface
) über die interface
Art?
In Bezug auf die Übersetzung, enum-Typ kompiliert zu "final class". Aber Enum-Typ ist für einen anderen Zweck als Klasse. 'class' wird für die Objektmodellierung verwendet. Ist das eine gute Analogie? – overexchange
Enum-Typen sind ein Beispiel, bei dem ein Muster in die Sprache gezogen wurde. Wenn Java keine Enum-Klassen hätte, könnte man immer noch den gleichen Effekt erzielen, indem man ein Muster codiert - nur mit mehr Ausführlichkeit. Das Enumerieren von Kompilieren in Klassen ist kein zufälliger Zufall, da das "Enum-Muster" im Wesentlichen von Klassen ausgedrückt wird. Anmerkungen scheinen mir ziemlich anders zu sein. –
Für Ihren Punkt: "** Schnittstellen, die es Objekten ermöglichen, Verhaltensweisen zu implementieren **". Kann ich anders formulieren als: "Schnittstellen erlauben Objekten, periphere (Nicht-Kern-) Verhaltensweisen zu implementieren?" Aus Referenz ** Artikel-18: Schnittstellen sind ideal für die Definition von Mixins **. Zum Beispiel: 'compareTo()' Verhalten von 'interface Comparable'. – overexchange