2017-10-17 10 views
1

私はJavaクラスを拡張するKotlinクラスを持っています。私はkotlinサブクラスによるスーパークラスのフィールドにアクセスするにはどうすればよいJavaスーパークラスから静的フィールドにアクセス

Kotlin

class MyKotlinClass: MyJavaClass() { 

    companion object { 
     const val STATUS_SUB = 1 
    } 
} 

のJava

public abstract class MyJavaClass { 

    public static final int STATUS_SUPER = 0 

} 

Kotlin

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

これは可能ですか?それは "未解決の参照:STATUS_SUPER"と書いてありますを使わずに可能でしょうか?

答えて

2

STATUS_SUPERは、あなたがそれにアクセスすることはできませんMyKotlinClassのメンバーではないので

MyJavaClass.STATUS_SUPER 

を試してみてください。

+0

スーパークラスを参照せずに可能ですか? – dumazy

+1

いいえ、 'static'メンバーは継承できないためです。継承はインスタンスでのみ機能します。 –

+0

ええ、あまりにも悪いです。 kotlinの代わりにJavaのサブクラスを使用すると、これは可能です – dumazy

関連する問題