Interoperabilidad de Java: aplique @JvmName a los buscadores de properties en la class de interfaz o abstracta

Por lo general, podemos escribir el siguiente código en kotlin:

val hasValue : Boolean @JvmName("hasValue") get() = true 

Esto generará el método hasValue() lugar de getHasValue() para la interoperabilidad de Java .

Sin embargo, en una interfaz, esto me da un error de compilation:

 val hasValue : Boolean @JvmName("hasValue") get 

Lo mismo vale para la siguiente statement en una class abstracta:

 abstract val hasValue : Boolean @JvmName("hasValue") get 

Así que aquí está mi pregunta: ¿Cómo puedo decirle al comstackdor de kotlin que use hasValue() lugar de getHasValue() para getters (y setters) de properties en las interfaces de kotlin?

Creo que Kotlin tiene alguna restricción sobre el uso de @JvmName en la propiedad / function de open / override . Prohibir el uso de @JvmName en la function open / override puede evitar tener diferentes jvmName en la interfaz / superclass y subclass.

En el siguiente ejemplo, estoy tratando de anotar el getter propiedad anulada con un jvmName ( hasValueImpl ) que es diferente de la interfaz ( hasValue ) y da error de compilation:

La anotación '@JvmName' no es aplicable a esta statement

 interface Abstract { @get:JvmName("hasValue") //Compile error val hasValue: Boolean get() = false } open class Impl : Abstract { @get:JvmName("hasValueImpl") //Compile error final override val hasValue: Boolean get() = false @get:JvmName("hasValue2") //Compile error if hasValue2 is open val hasValue2: Boolean get() = false } 
  • JAX-RS (Apache CXF) Inyección de context a través de setter
  • Reemplazar código duplicado con parámetro de function
  • ¿Por qué spring-data-elasticsearch no usa el objectmapper desde el context de spring?
  • Kotlin spring-boot @ConfigurationProperties
  • ¿Cuáles son los casos de uso de las properties en línea de Kotlin?
  • ¿Cuál es la forma correcta de jerarquizar los correladores y manipuladores de ruta Ktor para una implementación típica de REST?
  • kotlin consiguiendo un suscriptor para observar un observable usando RxJava2
  • Kotlin - Maven no está realizando testings
  • Problemas al intentar generar la aplicación Kotlin con Android Studio
  • ¿Cuál es la forma correcta de crear una nueva instancia de class genérica en kotlin?
  • Sirve favicon.ico y otros files estáticos con VertX