Kotlin
Adnotacje
Szukaj…
Deklaracja adnotacji
Adnotacje służą do dołączania metadanych do kodu. Aby zadeklarować adnotację, umieść modyfikator adnotacji przed klasą:
annotation class Strippable
Adnotacje mogą zawierać meta-anotacje:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
annotation class Strippable
Adnotacje, podobnie jak inne klasy, mogą mieć konstruktory:
annotation class Strippable(val importanceValue: Int)
Ale w przeciwieństwie do innych klas, jest ograniczony do następujących typów:
- typy odpowiadające pierwotnym typom Java (Int, Long itp.);
- smyczki
- klasy (Foo :: class)
- śliwki
- inne adnotacje
- tablice typów wymienionych powyżej
Meta-adnotacje
Deklarując adnotację, meta-informacje można dołączyć za pomocą następujących meta-adnotacji:
@Target
: określa możliwe rodzaje elementów, które można@Target
adnotacją (klasy, funkcje, właściwości, wyrażenia itp.)@Retention
określa, czy adnotacja jest przechowywana w skompilowanych plikach klas i czy jest widoczna przez odbicie w czasie wykonywania (domyślnie oba są prawdziwe).@Repeatable
pozwala@Repeatable
używać tej samej adnotacji na jednym elemencie.@MustBeDocumented
określa, że adnotacja jest częścią publicznego interfejsu API i powinna być zawarta w podpisie klasy lub metody pokazanym w wygenerowanej dokumentacji API.
Przykład:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class Fancy