Kotlin
aantekeningen
Zoeken…
Een annotatie verklaren
Annotaties zijn middelen om metagegevens aan code te koppelen. Om een annotatie te declareren, plaatst u de annotatiemodificator voor een klasse:
annotation class Strippable
Annotaties kunnen meta-anotaties hebben:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
annotation class Strippable
Annotaties kunnen, net als andere klassen, constructors hebben:
annotation class Strippable(val importanceValue: Int)
Maar in tegenstelling tot andere klassen, is beperkt tot de volgende typen:
- typen die overeenkomen met primitieve Java-typen (Int, Long etc.);
- strings
- klassen (Foo :: klasse)
- enums
- andere annotaties
- reeksen van de hierboven genoemde typen
Meta-annotaties
Bij het declareren van een annotatie kan meta-informatie worden opgenomen met behulp van de volgende meta-annotaties:
@Target
: specificeert de mogelijke soorten elementen die kunnen worden geannoteerd met de annotatie (klassen, functies, eigenschappen, uitdrukkingen enz.)@Retention
geeft aan of de annotatie is opgeslagen in de gecompileerde klassebestanden en of deze zichtbaar is door reflectie tijdens runtime (standaard zijn beide waar.)@Repeatable
kan dezelfde annotatie meerdere keren op een enkel element worden gebruikt.@MustBeDocumented
geeft aan dat de annotatie deel uitmaakt van de openbare API en moet worden opgenomen in de klasse- of@MustBeDocumented
die wordt weergegeven in de gegenereerde API-documentatie.
Voorbeeld:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy