Vraag Referentie Java-interface statische velden in Kotlin


Kan ik verwijzen naar Java-interface-velden van Kotlin? Ik heb deze Java-interface:

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

En ik implementeer het in Kotlin:

object UserEntry : BaseColumns {
    // some code
}

ik krijg Onopgeloste referentie als ik het probeer UserEntry._ID. Hoe kan ik toegang krijgen tot de _ID? Mis ik iets? Bedankt!


10
2018-02-09 17:09


oorsprong


antwoorden:


In tegenstelling tot Java worden in Kotlin statische leden van interfaces niet afgeleid en kunnen ze niet in subklassen worden aangeroepen zonder de interfacenaam te kwalificeren.

U zou moeten verwijzen _ID door BaseColumns: BaseColumns._ID zal werken.

Dit lijkt voor klassen anders te zijn: niet-gekwalificeerde naam van een statisch lid van de basisklasse lost het op, maar het lid is nog steeds niet geërfd.


13
2018-02-09 17:45