Buscar..


Declarar una anotación

Las anotaciones son medios para adjuntar metadatos al código. Para declarar una anotación, coloque el modificador de anotación delante de una clase:

annotation class Strippable

Las anotaciones pueden tener meta-anotaciones:

    @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
    annotation class Strippable

Las anotaciones, como otras clases, pueden tener constructores:

annotation class Strippable(val importanceValue: Int)

Pero a diferencia de otras clases, se limita a los siguientes tipos:

  • tipos que corresponden a los tipos primitivos de Java (Int, Long, etc.);
  • instrumentos de cuerda
  • clases (Foo :: clase)
  • enums
  • otras anotaciones
  • matrices de los tipos enumerados anteriormente

Meta-anotaciones

Al declarar una anotación, se puede incluir metainformación utilizando las siguientes meta-anotaciones:

  • @Target : especifica los posibles tipos de elementos que se pueden anotar con la anotación (clases, funciones, propiedades, expresiones, etc.)

  • @Retention especifica si la anotación se almacena en los archivos de clase compilados y si es visible a través de la reflexión en tiempo de ejecución (de forma predeterminada, ambos son verdaderos).

  • @Repeatable permite usar la misma anotación en un solo elemento varias veces.

  • @MustBeDocumented especifica que la anotación es parte de la API pública y debe incluirse en la clase o firma de método que se muestra en la documentación de la API generada.

Ejemplo:

@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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow