? Java anteckningar , tillsätts i Java 1.5 , kan lägga till extra information om en klass , metod eller fält . Denna information kan användas på olika sätt , till exempel visar hur ett program ska köras , eller vilka metoder som bör undvikas av andra utvecklare . Beroende på hur anteckningarna ursprungligen kodade , kan denna information vara tillgänglig endast i den ursprungliga källkoden , när man arbetar med den kompilerade klassen direkt eller vid körning via reflektion . Vad Är Anteckningar
Enkelt uttryckt , är en annotering ett sätt att lägga till ytterligare information - även kallad metadata - till ditt program om den kommenterade artikeln . Denna information kan vara så enkelt som en anteckning beskriver författarskap eller något så komplext som att associera ett fält med en databas kolumn . Anteckningar kan hanteras på ett av tre sätt : genom att vistas endast i den ursprungliga källkoden , där de är i allmänhet endast synlig för andra utvecklare , genom att kompileras till bytekod , där de inte är tillgängliga för runtime bearbetning , men finns tillgänglig för program som använder klass-filer , och sammanställs så att informationen laddas vid körning så den kör programmet kan komma åt det Varför Kräv Anteckningsverktyg Detaljer på Runtime
Eftersom . ? en utvecklare kan ange ytterligare information om ett objekt som har denna information tillgänglig vid körning kan tillåta ett program att agera annorlunda för det objektet utan att nödvändigtvis kräva att information för att sammanställa ( eller ens fungera ) . Till exempel anser en anteckning som associerar ett fält med en databas kolumn , kanske det skulle se ut ungefär så här :
@ DBField ( " FIRSTNAME " ) katalog
private String firstName ;
Under exekvering , kan programmet läsa den informationen och inser att det skulle fylla detta område baseras på innehållet i den kolumnen ( beviljas , skulle det också behöva tabell och rad information) . Detta skulle också göra det möjligt för användaren att skriva , till exempel , ett generiskt datahantering rutin som bygger på anteckningar och behöver inte mycket specialisering för varje klass .
Hur Java Anteckningar ignoreras
som tidigare nämnts finns det tre sätt för kompilatorn att hantera en anteckning det kommer över i koden : genom att skrota den ( och därmed lämnar den bara i koden ) , genom att sammanställa det i bytekod och genom att sammanställa den i bytekod med den information som behövs för att läsa den vid körning . Det andra alternativet - sammanställa det till bytekod ( utan att ladda den under körning ) - är standard för alla kommentarer , så om inte annat anges , kommer en anteckning inte vara tillgängliga vid körning . Men specificera detta är extremt enkelt om du har tillgång till anteckningen källkod . Bara ytterligare en anteckning till anteckning definition :
@ Retention ( RetentionPolicy.RUNTIME ) katalog
allmänheten @ interface MyAnnotation ... Addera Använda Anteckningar vid körning
När du har säkerställt att anteckningen är tillgänglig vid körning , med det är oerhört enkelt . Förutsatt att du har en anteckning som heter " författare " med en sträng värde , kan du använda följande kod för att se till att du har runtime tillgång till anteckningen :
final Författare author = MyClass.class.getAnnotation ( Author. klass ) ;
System.out.println ( author.value ( ) ) ;
I detta fall skulle MyClass förklaras enligt följande :
@ författare ( " John Doe " ) katalog
public class MyClass ...
När du utför raderna ovan , bör du få värdet för anteckning ( " John Doe ", i det här fallet ) skrivs till konsolen . Addera