@StringRes, @DrawableRes, @LayoutRes и так далее Android аннотации lint проверить с параметрами Котлина

если у вас есть такой класс данных с параметрами по умолчанию

data class Info(
        @DrawableRes
        val iconRes: Int = 0,
        @StringRes
        val stringRes: Int = 0,
        @LayoutRes
        val layoutRes: Int = 0)

таким образом, вы можете создать этот класс данных, как

    val data = Info(
        iconRes = R.drawable.icon, 
        stringRes = R.string.text,
        layoutRes = R.layout.layout)

в этом случае нет никакой ошибки lint

но когда я пытаюсь использовать параметры по умолчанию, возникает ошибка lint:

val data = Info(
        //here is expected resource of type drawable error
        stringRes = R.string.text
        layoutRes = R.layout.layout)

кажется, что он использует позицию в параметрах, а не точный тип и имя.

Я пытался использовать явные аннотации типа @param:DrawableRes, но с тем же результат.

можно ли как-то решить эту проблему? Я использую последнюю версию Android Studio 3.0.

1 ответов


Это была проблема в Android Studio и была исправлена в 3.1. Проверил на 3.1-beta4