? Java annotationer , tilføjede i Java 1.5 , kan tilføje ekstra information om en klasse , metode eller felt. Denne information kan bruges på forskellige måder, såsom beskriver, hvordan et program skal udføre , eller hvilke metoder bør undgås ved andre udviklere . Afhængigt af, hvordan de anmærkninger oprindeligt blev kodet, kan denne information kun være tilgængelig i den oprindelige kildekode, når du arbejder med kompileret klassen direkte eller ved runtime via refleksion. Hvad Er anmærkninger
Kort sagt, en anmærkning er et middel til at tilføje yderligere oplysninger - også kaldet metadata - til dit program omkring kommenteret element. Denne information kan være så simpelt som en note beskriver forfatterskab eller noget så komplekst som at knytte et felt med en database kolonne. Noteringer kan håndteres på en af tre måder: ved at bo alene i den oprindelige kildekode, hvor de er generelt kun synlig for andre udviklere , ved at blive kompileret ind i bytekode , hvor de ikke er tilgængelige for runtime behandling, men er til rådighed til programmer adgang til de class filer , og at blive udarbejdet , så de oplysninger, der er lagt på runtime , så den kørende program kan få adgang til det
Hvorfor Kræv Anmærkningsværktøjer Nærmere oplysninger på Runtime
Fordi . ? en udvikler kan indikere yderligere oplysninger om et emne , der har disse oplysninger til rådighed på runtime kan tillade et program at handle anderledes for denne post uden nødvendigvis at kræve , at oplysninger til at udarbejde (eller endda funktion) . For eksempel overveje en anmærkning , der knytter et felt med en database kolonne måske ville se noget som dette : Hej
@ DBField ( " Fornavn" )
private String fornavn ;
< p> Under udførelse, kan programmet læse, at information og indse det skal fylde dette område er baseret på indholdet af denne kolonne (tildelt , ville det også nødvendigt tabel og række oplysninger). Dette ville også gøre det muligt for brugeren at skrive , for eksempel, en generisk data håndtering rutine , der bygger på anmærkninger og behøver ikke megen specialisering for hver klasse.
Hvordan Java anmærkninger ignoreres < br >
p Som tidligere nævnt, er der tre måder for compiler til at håndtere en anmærkning det kommer på tværs i kode : ved skrotning det (og dermed overlader det kun i koden ) , ved at kompilere det i bytecode og ved at kompilere det i bytekode med de nødvendige oplysninger for at indlæse det på runtime . Den anden mulighed - at kompilere den ind i bytekode (uden du lægger det på runtime ) - er standard for alle anmærkninger , så medmindre andet er angivet, vil en anmærkning ikke være tilgængelig på runtime . Men angiver dette er yderst enkel, hvis du har adgang til anmærkning kildekode. Du skal blot tilføje en ekstra anmærkning til den anmærkning definition : Hej
@ Retention ( RetentionPolicy.RUNTIME )
offentligheden @ grænseflade MyAnnotation ...
Brug af Annotation på Runtime
Når du har sikret annotation er tilgængelig på runtime , ved hjælp af det er ekstremt simpelt . Forudsat du har en anmærkning navnet " Author" med en streng værdi , kan du bruge følgende kode for at sikre du har runtime adgang til anmærkning : Hej
endelige Forfatter author = MyClass.class.getAnnotation ( Author. klasse) ;
System.out.println ( author.value ());
I dette tilfælde ville MinKlasse blive erklæret som følger : Hej
@ Author ( " John Doe " )
public class MinKlasse ...
Når du udfører linjerne ovenfor , bør du få værdien for anmærkning ( " John Doe ", i dette tilfælde) udskrevet til konsollen .