2016-02-09 27 views
10

È possibile fare riferimento ai campi dell'interfaccia Java da Kotlin? Ho questa interfaccia Java:Campi statici di interfaccia Java di riferimento in Kotlin

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

E io recepirlo nel Kotlin:

object UserEntry : BaseColumns { 
    // some code 
} 

ottengo non risolti riferimento quando provo UserEntry._ID. Come posso accedere allo _ID? Mi sto perdendo qualcosa? Grazie!

risposta

13

In Kotlin, a differenza di Java, i membri statici delle interfacce non sono derivati ​​e non possono essere chiamati in sottoclassi senza qualificare il nome dell'interfaccia.

È necessario fare riferimento a _ID tramite BaseColumns: BaseColumns._ID funzionerà.

Questo sembra essere diverso per le classi: il nome non qualificato di un membro statico della classe base si risolve ad esso, ma il membro non è ancora ereditato.

+0

Domanda successiva: in questo caso particolare, non c'è motivo di implementare l'interfaccia BaseColumns giusto? Poiché contiene solo due variabili membro statiche? – Joris

+1

@Joris, hai ragione, non ce n'è bisogno. – hotkey

Problemi correlati