2016-02-09 12 views
10

Czy mogę odwoływać się do pól interfejsu Java z Kotlin? Mam ten interfejs Java:Odniesienie do pól statycznych interfejsu Java w Kotlin

public interface BaseColumns { 
    public static final String _ID = "_id"; 
    public static final String _COUNT = "_count"; 
} 

I wdrożyć go w Kotlin:

object UserEntry : BaseColumns { 
    // some code 
} 

uzyskać nierozwiązane odniesienie gdy próbuję UserEntry._ID. Jak mogę uzyskać dostęp do _ID? Czy czegoś brakuje? Dzięki!

Odpowiedz

13

W języku Kotlin, w przeciwieństwie do języka Java, statyczne elementy interfejsów nie są tworzone i nie można ich wywoływać w podklasach bez kwalifikowania nazwy interfejsu.

Powinieneś zadzwonić pod numer _ID do do: BaseColumns._ID.

Wygląda na to, że jest inny dla klas: niekwalifikowana nazwa członka statycznego klasy podstawowej rozwiązuje go, ale członek nadal nie jest dziedziczony.

+0

Pytanie uzupełniające: w tym konkretnym przypadku nie ma powodu, aby zaimplementować interfejs BaseColumns w prawo? Ponieważ zawiera tylko dwie statyczne zmienne składowe? – Joris

+1

@Joris, masz rację, nie ma potrzeby. – hotkey

Powiązane problemy