Anotaciones anidadas en Kotlin

En Java es posible crear annotations anidadas como esta:

public @interface InnerInnotation { String value(); } public @interface OuterAnnotation { InnerAnnotation[] value() default { @InnerAnnotation("Hello"), @InnerAnnotation("World") } } annotation class InnerAnnotation(val value: String) 

Pero cuando trato de hacer lo mismo en Kotlin, obtengo un error de compilation:

 annotation class OuterAnnotation( // Next line doesn't compile: "Annotation class cannot be instantiated" val value: Array<InnerAnnotation> = arrayOf(InnerAnnotation("Test")) ) 

Sin embargo, un campo de anotación de instancia única funciona bien:

 annotation class OuterAnnotation( val value: InnerAnnotation = InnerAnnotation("Hello World") ) 

¿Hay alguna forma de definir una anotación con un campo de matriz de anotación anidada y especificar un valor pnetworkingeterminado para este campo?

Este es un error en el comstackdor de Kotlin, debería ser permitido. Gracias por el informe! Creé un problema: https://youtrack.jetbrains.com/issue/KT-10136

Sin embargo, no conozco ninguna solución alternativa, excepto la reescritura de OuterAnnotation en Java.

Esto funciona si no usa @ en las annotations anidadas. Por lo que he leído y hablado con los desarrolladores, esta es la syntax prevista para las annotations anidadas. Se siente inconsistente y espero que lo cambien, pero al estar tan cerca de 1.0, las esperanzas son bajas.

  • ¿Por qué no convertiría cada class de Kotlin eligable en una class de datos?
  • Práctica recomendada para convertir el código de Java utilizado para copyr files de activos en la carpeta de caching de Android a Kotlin
  • ¿Cómo replace el doAsync de Anko, uiThread con las funciones de kotlin 1.1.0 kotlinx-coroutines-core lib?
  • ¿Debo cancelar la suscripción cuando uso rxbinding?
  • Error de Kotlin: no se pudo encontrar org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7
  • onCreate crashing después de convertir de Java a Kotlin
  • Kotlin delegar propiedad por perezoso que es hilo local
  • ¿Cómo almacenar variables temporales al inicializar un object Kotlin?
  • Prueba de unidad Kotlin para parámetro de function y object
  • Kotlin crash No se puede convertir la notación proporcionada a un object de tipo Dependencia: org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension_Decorated
  • @uncheckedVariance en Kotlin?