Annotationer blev føjet til Java-sproget i Java 1.5 , og kan nemt tilføje en helt ny dynamik til almindelig programmering. Simpelthen sat, annotationer er en måde at tilføje metadata til forskellige aspekter af en klasse , ekstra information, som kan bruges til at ændre den måde, klassen opfører eller blot til yderligere beskrive det i manerer ikke let kan håndhæves via standard midler. Brug Noteringer
anmærkninger er ekstremt nemt at bruge, og kan anvendes til flere områder af din kode. Et eksempel på nogle annotation forbrug ville være : Hej
@ Deprecated
public class MinKlasse ...
Hvilket ville markere klassen som " forældede" , hvilket betyder at det ikke bør anvendes, hvis det overhovedet er muligt . En anden anmærkning nyttigt til demonstrative formål er SuppressWarnings anmærkning : Hej
@ SuppressWarnings (" ubrugte ")
public void somethingWithUnusedVariables () { ....
Med dette eksempel , du kan se , at du kan videregive oplysninger til anmærkningen - i dette tilfælde , til den form for advarsler undertrykke - som derefter kan anvendes af forskellige værktøjer , såsom compiler
Hvad er. en anmærkning ?
Java-kode , en anmærkning er lidt mere end en almindelig interface. Oprettelse af én er meget enkel : Hej
offentlig @ grænseflade MyAnnotation {
}
Denne nye anmærkning kan bruges overalt , såsom at udsmykke en klasse : Hej
@ MyAnnotation
public class SomeClass ...
selvfølgelig i denne form , er det temmelig ubrugelig - det indeholder ingen data og som standard alle anmærkninger er gemt med klassen fil, men er ikke er tilgængelige på runtime , så de tjener så lidt mere end en ekstra kommentar .
skabe nyttige anmærkninger
som tidligere anført som standard anmærkninger er tilgængelig på runtime . Det er fint, hvis du bare bruger det som en markør af en slags for andre udviklere til at notere , eller hvis du kommer til at gøre nogle bytecode - niveau behandling, men for at få adgang til din annotation på runtime (via refleksion ), skal du fortælle compileren at gøre det. Du kan gøre dette med anotherent anmærkning , som du anvender til din nye anmærkning : Hej
@ Retention ( RetentionPolicy.RUNTIME )
Dette vil give dig adgang til annotation information - gennem refleksion - mens din kode kører, og behandle det i overensstemmelse hermed .
Læsning annotation information
Læsning annotation information på runtime er lidt tricky, men på ingen måde umuligt. Brug Java refleksion funktionalitet, kan du få anmærkninger , der anvendes på en klasse , metode eller felt , samt alle oplysninger i denne anmærkning . For eksempel overveje følgende simple påskrift : Hej
@ Retention ( RetentionPolicy.RUNTIME )
offentlig @ grænseflade Forfatter {
String værdi ();
}
Anvendt til en klasse som så : Hej
@ Forfatter ( " John Doe " )
public class MyClass { ...
p Du kan få forfatteren oplysninger med følgende kode : Hej
endelige Forfatter author = MyClass.class.getAnnotation ( Author.class )
System.out.println ( author.value ()); < br >