Подтвердить что ты не робот

Статические поля справочного Java-интерфейса в Котлине

Можно ли ссылаться на поля интерфейса Java из Kotlin? У меня есть этот интерфейс Java:

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

И я реализую его в Kotlin:

object UserEntry : BaseColumns {
    // some code
}

Я получаю неразрешенную ссылку при попытке UserEntry._ID. Как я могу получить доступ к _ID? Я что-то упускаю? Спасибо!

4b9b3361

Ответ 1

В Kotlin, в отличие от Java, статические члены интерфейсов не выводятся и не могут быть вызваны в подклассах без указания имени интерфейса.

Вы должны ссылаться _ID на BaseColumns: BaseColumns._ID будет работать.

Для классов это кажется другим: недопустимое имя статического члена базового класса разрешает ему, но член все еще не унаследован.