Anotació (Java)

De la Viquipèdia, l'enciclopèdia lliure

En programació, una anotació és una manera d'afegir metadades al codi font Java que també poden ser accedides pel programador en temps d'execució. Molts cops es fa servir com una alternativa a la tecnologia XML.

Les anotacions Java poden ser afegides a elements de programa com ara classes, mètodes, camps, paràmetres, variables locals i paquets. A diferència dels tags afegits a la documentació Java i processats amb eines com ara XDoclet, les anotacions Java són completament accessibles pel programador mentre el programa està sent usat amb l'ús de reflection.

Història[modifica]

Les anotacions Java van ser presentades a la Java Community Process com JSR-2002 i aprovades el setembre del 2004. Les anotacions estan disponibles des de la versió 1.5 de JDK. La funcionalitat va ser afegida al Llenguatge Java per l'especificació.

Procés[modifica]

Quan es compila el codi Java, el compilador guarda les metadades de l'anotació als fitxers de classe. Després, la màquina virtual, pot buscar les metadades i així determinar amb els elements del programa o canviar el seu comportament.

Sintaxi[modifica]

Declarar una anotació vol dir canviar les etiquetes que han estat afegides per comentar seccions al passat. Les anotacions tenen la forma d'una declaració d'interfície amb una @ precedint-la i opcionalment marcant-la amb meta-anotacions, com es mostra a continuació:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})

Tant Retention com Target, són exemples d'anotacions.

Rebuda per la comunitat[modifica]

Pros[modifica]

Programació declarativa

Les anotacions permeten al programador declarar al seu codi font el comportament de l'aplicació. És un exemple de com a elements de la programació declarativa poden ser afegits a un llenguatge orientat a objectes.

Contres[modifica]

Rendiment

Afegir metadades a una execució afegeix càrrega addicional de memòria.

Manca d'estàndards

Hi ha pocs estàndards que marquin quines metadades haurien de ser usades.

Vegeu també[modifica]

Referències[modifica]