Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Prečo je Java Anotácia ignorované v zákonníku ?

Java anotácie, pridané v jazyku Java 1.5 , môžete pridať ďalšie informácie o triedy , metódy alebo pole . Tieto informácie môžu byť použité rôznymi spôsobmi , ako sú podrobne , ako by mal program spustiť , alebo aké metódy by sa malo zabrániť inými vývojármi . V závislosti na tom , ako boli anotácia pôvodne kódované , táto informácia môže byť k dispozícii len v pôvodnom zdrojovom kóde , pri práci s kompilované triedy priamo alebo za behu pomocou reflexie . Aké sú Anotácia

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 .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené