La function de la interfaz choca con el getter de Property

El nombre de la function de una interfaz entra en conflicto con el nombre getter de una propiedad intencionalmente, pero está prohibido por el comstackdor debido a un problema de anulación accidental. ¿Es posible indicarle al comstackdor que esto es intencional?

interface A { fun getFoo() } class B: A { val foo } 

Esta característica parece no implementarse de ninguna manera.

@ Comentario de Andrey Breslav sobre una pregunta similar :

No puede anular los methods de Java con las properties de Kotlin en este momento. Sería bueno si pudiéramos apoyarlo, pero no sabemos cómo hacerlo de manera consistente para jerarquías mixtas


Esto no resuelve su problema, pero al less hace que el código se compile: puede cambiar el nombre JVM del getter con la anotación @JvmName :

 interface A { fun getFoo(): SomeType } class B: A { override fun getFoo() = foo val foo: SomeType = someValue() @JvmName("getFoo_") get() = field } 

Además, considere cambiar a un enfoque más idiomático: defina val property en su interfaz, para que pueda anularlo en las implementaciones:

 interface A { val foo: SomeType } class B : A { override val foo: SomeType = someValue() } class C : A { override val foo: SomeType get() = someCustomGetter() } 
  • Kotlin: ¿Cómo puedo pasar un pnetworkingicado a la function CharSequence.any ()?
  • error: no se pudo encontrar o cargar la class principal Hello.class
  • No se pudo encontrar kotlin-reflect.jar (org.jetbrains.kotlin: kotlin-reflect: 1.1.3-2) en android studio 3.0
  • Falso positivo en Android lint check para LinkedHashMap.remove ()
  • Kapt no funciona con AutoValue en Android Studio 3.0
  • Herramientas de análisis estático para el lenguaje de progtwigción Kotlin?
  • La class Kotlin no obtiene su valor boolean de firebase
  • No se pudo deducir Kotlin y RxJava
  • La variable de instancia de Kotlin es nula cuando se accede por la class proxied de Spring
  • ¿Cuál es el propósito de la class vacía en Kotlin?
  • La mejor forma de traducir este código java a kotlin