Suche…


Annotation deklarieren

Anmerkungen sind Mittel zum Anhängen von Metadaten an Code. Um eine Anmerkung zu deklarieren, setzen Sie den Anmerkungsmodifizierer vor eine Klasse:

annotation class Strippable

Anmerkungen können Meta-Anmerkungen enthalten:

    @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
    annotation class Strippable

Anmerkungen können wie andere Klassen über Konstruktoren verfügen:

annotation class Strippable(val importanceValue: Int)

Im Gegensatz zu anderen Klassen ist dies jedoch auf folgende Typen beschränkt:

  • Typen, die Java-Grundtypen entsprechen (Int, Long usw.);
  • Streicher
  • Klassen (Foo :: Klasse)
  • enums
  • andere Anmerkungen
  • Arrays der oben aufgeführten Typen

Meta-Anmerkungen

Bei der Deklaration einer Annotation können Meta-Informationen mit den folgenden Meta-Annotationen eingefügt werden:

  • @Target : @Target die möglichen Arten von Elementen an, die mit der Annotation versehen werden können (Klassen, Funktionen, Eigenschaften, Ausdrücke usw.).

  • @Retention gibt an, ob die Anmerkung in den kompilierten Klassendateien gespeichert ist und ob sie zur Laufzeit durch Reflektion sichtbar ist (standardmäßig sind beide wahr).

  • @Repeatable ermöglicht die mehrfache Verwendung derselben Annotation für ein einzelnes Element.

  • @MustBeDocumented gibt an, dass die Annotation Teil der öffentlichen API ist und in der in der generierten API-Dokumentation angegebenen Klasse oder Methodensignatur enthalten sein sollte.

Beispiel:

@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
        AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow