Kotlin
annotazioni
Ricerca…
Dichiarazione di un'annotazione
Le annotazioni sono mezzi per allegare metadati al codice. Per dichiarare un'annotazione, metti il modificatore di annotazione davanti a una classe:
annotation class Strippable
Le annotazioni possono avere meta-anotazioni:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
annotation class Strippable
Le annotazioni, come altre classi, possono avere costruttori:
annotation class Strippable(val importanceValue: Int)
Ma a differenza di altre classi, è limitato ai seguenti tipi:
- tipi che corrispondono ai tipi primitivi di Java (Int, Long ecc.);
- stringhe
- classi (Foo :: classe)
- enumerazioni
- altre annotazioni
- matrici dei tipi sopra elencati
Meta-annotazioni
Quando si dichiara un'annotazione, è possibile includere meta-informazioni utilizzando le seguenti meta-annotazioni:
@Target
: specifica i possibili tipi di elementi che possono essere annotati con l'annotazione (classi, funzioni, proprietà, espressioni, ecc.)@Retention
specifica se l'annotazione è archiviata nei file di classe compilati e se è visibile tramite reflection in fase di esecuzione (per impostazione predefinita, entrambi sono veri).@Repeatable
consente di utilizzare la stessa annotazione su un singolo elemento più volte.@MustBeDocumented
specifica che l'annotazione fa parte dell'API pubblica e deve essere inclusa nella firma della classe o del metodo indicata nella documentazione dell'API generata.
Esempio:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy