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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow