Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Jednoducho povedané , anotácia je spôsob pridávania ďalšie informácie - tiež známy ako metadáta - na programe o anotovaný položky . Táto informácia môže byť rovnako jednoduché ako poznámku podrobne autorstva , alebo niečo tak zložitého ako priradenie poľa s databázový stĺpec . Anotácia môžu byť spracované jedným z troch spôsobov : pobyt iba v pôvodnom zdrojovom kóde , kde sú zvyčajne viditeľné iba ostatným vývojárom , ktoré sú skompilované do bytecode , kde sú k dispozícii pre spracovanie runtime , ale sú k dispozícii na programy pristupujúce súbory triedy a sú zostavené tak , aby informácie načítané za behu , takže beh programu môže pristupovať
Prečo Vyžadovať Anotácia Podrobnosti v behu
Vzhľadom k tomu , . ? autor môže uviesť ďalšie informácie o položke , ktoré majú tieto informácie k dispozícii pri behu môže dovoliť programu konať inak pre danú položku , bez toho , aby bolo nevyhnutné , aby informácie kompilovať ( alebo dokonca aj funkcie ) . Napríklad , zvažovať anotáciu , ktorá združuje polia s databázový stĺpec , možno by to vyzeralo niečo ako toto :
@ DBField ( " Meno " )
private String jmeno ;
V priebehu realizácie , program mohol prečítať informácie a uvedomiť si , že by mala vyplniť toto pole na základe obsahu tohto stĺpca ( udelené , bolo by to tiež potrebovať tabuľku a riadok informácií ) . To by tiež umožňuje užívateľovi písať , napríklad , generický dátový bežnej manipulácie , ktoré sa opiera o poznámky a nepotrebuje toľko špecializáciu pre každú triedu .
Ako Java Anotácia sú ignorované
ako už bolo uvedené , existujú tri spôsoby , ako pre kompilátor spracovať anotáciu , keď narazí v kóde : o zošrotovanie ho ( a tým zanecháva ju iba v kóde ) , podľa zostavovanie ho do bytecode a zostavovanie ho do bytecode s informáciami potrebnými pre jeho načítať za behu . Druhá možnosť - zostavovanie ho do bytecode ( bez zaťaženia ju za behu ) - je predvolený pre všetky anotácie, takže ak nie je uvedené inak , anotácie nie je k dispozícii pri behu . Avšak , s uvedením To je veľmi jednoduché , ak máte prístup k zdrojovému kódu anotáciu je . Jednoducho pridajte ďalšiu poznámku k definícii anotácia :
@ Retention ( RetentionPolicy.RUNTIME )
verejné @ interface MyAnnotation ...
Použitie Anotácia za behu
Ak ste sa presvedčili anotácie je k dispozícii pri behu , jeho použitie je veľmi jednoduché . Za predpokladu , že máte anotácia s názvom " Autor " s hodnotou reťazca , môžete použiť nasledujúci kód , aby sa uistil , že máte runtime prístup k anotácii :
konečnej Autor author = MyClass.class.getAnnotation ( Author. trieda ) ;
System.out.println ( author.value ( ) ) ;
V tomto prípade , Moje_třída by byť vyhlásená nasledovne :
@ Autor ( " John doe " )
public class MyClass ...
Po spustení riadky vyššie , mali by ste získať hodnotu pre anotáciu ( " John Doe " , v tomto prípade ) , vytlačené na konzole .