2016-07-15 14 views

Odpowiedz

13

Ta funkcja nie jest w żaden sposób implementowana.

@ komentarzu AndreyBreslav jest na similar question:

Nie można zastąpić metody Java o właściwościach Kotlin w tej chwili. Byłoby miło, gdybyśmy mogli go wspierać, ale nie wiemy, jak to robić konsekwentnie mieszanych hierarchii


to nie rozwiązuje problemu, ale przynajmniej robi kompilacji kodu: można zmienić Nazwa JVM z getter z @JvmName annotation:

interface A { 
    fun getFoo(): SomeType 
} 

class B: A { 
    override fun getFoo() = foo 

    val foo: SomeType = someValue() 
     @JvmName("getFoo_") get() = field 
} 

również rozważyć zmianę na bardziej idiomatycznym podejścia: zdefiniować val -property w interfejsie, dzięki czemu można zastąpić go w realizacji s:

interface A { 
    val foo: SomeType 
} 

class B : A { 
    override val foo: SomeType = someValue() 
} 

class C : A { 
    override val foo: SomeType 
     get() = someCustomGetter() 
} 
+1

UPD: Dodano bardziej podejście Kotlin-idiomatyczne. – hotkey

Powiązane problemy