2016-02-09 17 views
10

)KotlinのJavaインターフェースフィールドを参照できますか?私は、このJavaインターフェースを持っている:リファレンスJavaインターフェースの静的フィールド(Kotlin

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

そして私はKotlinでそれを実装:

object UserEntry : BaseColumns { 
    // some code 
} 

私はUserEntry._IDをしようとすると、私は未解決の参照を取得します。 _IDにアクセスするにはどうすればよいですか?何か不足していますか?ありがとう!

答えて

13

Kotlinでは、Javaとは異なり、インターフェイスの静的メンバーは派生しないため、インターフェイス名を修飾せずにサブクラスで呼び出すことはできません。

_IDBaseColumnsBaseColumns._IDを参照する必要があります。

これは、クラスによって異なります。基本クラス静的メンバーの非修飾名が解決されますが、メンバーは引き続き継承されません。

+0

詳細な質問:この場合、BaseColumnsインターフェイスを実装する理由はありませんか?それは2つの静的メンバー変数しか含んでいないので? – Joris

+1

@ヨリス、そうです、必要はありません。 – hotkey

関連する問題