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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow