Wiederholung von Anmerkungen

Wiederholung von Anmerkungen

Mit der Einführung von Java 8 in die Plattform können Sie jetzt zwei neue Anmerkungen verwenden, nämlich Typanmerkungen und sich wiederholende Anmerkungen. Wie der Name schon sagt, bietet Ihnen das Wiederholen von Annotationen die Möglichkeit, eine bestimmte Annotation innerhalb derselben Klasse wiederzuverwenden. Die Syntax einer sich wiederholenden Anmerkung unterscheidet sich nicht wesentlich von der Deklaration normaler Anmerkungen. Sie können Annotationen überall in Ihrem Code durch sich wiederholende Annotationen ersetzen.

Container-Annotation speichert sich wiederholende Anmerkungen. Dieser Prozess wird automatisch vom Compiler ausgeführt, um die Kompatibilität des Programms zu erleichtern. In solchen Fällen erfordert der Compiler die folgenden zwei Deklarationen in Ihrem Code:

  1. Deklarieren eines sich wiederholenden Anmerkungstyps
  2. Deklarieren des enthaltenden Anmerkungstyps

Deklarieren eines wiederholbaren Anmerkungstyps

Wenn Sie einen wiederholbaren Annotationstyp deklarieren, muss er mit @Repeatable Meta-Annotation gekennzeichnet werden. Das folgende Beispiel definiert einen benutzerdefinierten @Game wiederholbaren Anmerkungstyp.

@Repeatable (Games.class) @interfaceGame { Stringname (); Stringverzögerung (); }

 

Deklarieren des enthaltenden Anmerkungstyps

Diese enthaltende Typannotation muss ein Wertelement und einen Arraytyp haben. Der Datentyp des Arrays muss vom Typ der sich wiederholenden Anmerkungstypkomponente sein.

@interfaceGames { Spiel [] Wert (); }

 

Beispielprogramm

Dieses Programm zeigt ein Beispiel für sich wiederholende Anmerkungen

import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Repeatable (Games.class) @interfaceGame { String name(); Zeichenfolge Tag (); } @Retention (RetentionPolicy.RUNTIME) @ninterfaceGames { Spiel [] Wert (); } @Game (Name = „Cricket“, Tag = „Sonntag“) @Game (Name = „Hockey“, Tag = „Freitag“) @Game (Name = „Fußball“, Tag = „Samstag“) öffentliche Klasse RepeatingAnnotationsExample { public static void main (String args []) { Game [] game = RepeatingAnnotationsExample.class.getAnnotationsByType(Game.class); for (Gamegame2 : game) { System.out.println (game2.name() + „on“ + game2.day()); } } }

 

Hinterlassen Sie eine Nachricht

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.