2017-10-17 3 views
1

Ich habe eine Kotlin-Klasse, die eine Java-Klasse erweitert.Zugriff auf statisches Feld von Java-Superklasse

Kotlin

class MyKotlinClass: MyJavaClass() { 

    companion object { 
     const val STATUS_SUB = 1 
    } 
} 

Java

public abstract class MyJavaClass { 

    public static final int STATUS_SUPER = 0 

} 

Wie kann ich die Super-Klasse-Feld durch die Kotlin Unterklasse zugreifen?

Kotlin

when(status) { 
    MyKotlinClass.STATUS_SUPER -> something() 
    MyKotlinClass.STATUS_SUB -> somethingElse() 
} 

Ist das möglich? Es heißt "ungelöste Referenz: STATUS_SUPER" Wäre es möglich ohne MyJavaClass.STATUS_SUPER zu verwenden?

Antwort

2

Versuchen

MyJavaClass.STATUS_SUPER 

Da STATUS_SUPER ist kein Mitglied von MyKotlinClass Sie werden es nicht zugreifen können.

+0

ist es möglich, ohne die Superklasse zu verweisen? – dumazy

+1

Nein, weil 'statische' Member nicht vererbt werden können. Vererbung funktioniert nur für Instanzen. –

+0

Hmm, schade. Mit einer Java-Subklasse anstelle von Kotlin wäre das möglich – dumazy

Verwandte Themen