Oharpenak errepikatzea

Oharpenak errepikatzea

Java 8 plataformara sartzearekin batera, orain bi ohar berri erabil ditzakezu, hau da, idatzi oharrak eta errepikatzen diren oharrak. Izenak dioen bezala, oharrak errepikatzeak klase berean oharpen jakin bat berrerabiltzeko aukera ematen dizu. Errepikatzen den oharpen baten sintaxia ez da oso desberdina ohartarazpen arruntak deklaratzen dituzunaren arabera. Oharpenak errepikatzen diren oharrekin ordezka ditzakezu zure kodeako edozein lekutan.

Edukiontzien oharrak errepikatzen diren oharrak gordetzen ditu. Prozesu hau automatikoki exekutatzen du konpilatzaileak programaren bateragarritasuna errazteko. Kasu horietan, konpilatzaileak bi adierazpen hauek eskatzen ditu zure kodean:

  1. Oharpen mota errepikakorra deklaratzea
  2. Adierazpena duen oharpen mota

Errepikagarria den oharpen mota bat deklaratzea

Errepikagarria den oharpen mota bat deklaratzen ari zarenean, @Repeatable meta-oharpenarekin markatu behar da. Hurrengo adibidean @Game errepika daitekeen oharpen mota pertsonalizatua definitzen da.

@Repeatable (Games.class) @interfaceGame { String izena (); Kateen atzerapena (); }

 

Adierazpena duen oharpen mota

Motaren oharpen honek balio-elementu bat eta array-mota izan behar ditu. Arrayaren datu-motak errepikatzen diren oharpen motako osagaia izan behar du.

@interfaceGames { Jokoa [] balioa (); }

 

Lagin Programa

Programa honek oharrak errepikatzeko adibide bat erakusten du

inportatu java.lang.annotation.Errepikagarria; inportatu java.lang.annotation.Retention; inportatu java.lang.annotation.RetentionPolicy; @Repeatable (Games.class) @interfaceGame { String izena (); Kate eguna (); } @Retention (RetentionPolicy.RUNTIME) @nterfaceGames { Jokoa [] balioa (); } @Game (izena = “Kricket”, eguna = “Igandea”) @Game (izena = “Hockey”, eguna = “Ostirala”) @Game (izena = “Futbola”, eguna = “Larunbata”) klase publikoa ErrepikatzeaOharpenakAdibidea { public static void main (String args []) { Game [] game = RepeatingAnnotationsExample.class.getAnnotationsByType (Game.class); for (Gamegame2 : game) { System.out.println (game2.name() + “on” + game2.day()); } } }

 

Iruzkin bat

Gune honek Akismet-ek spam erabiltzen du. Ikasi zure iruzkina nola prozesatu den.