assuming you have such data class with default parameters

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错误

但当我try 使用默认参数时,出现了一个lint错误:

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

似乎它在参数中使用位置,而不是确切的类型&名称

I've tried to use explicit annotation like @param:DrawableRes, but with the same result.

Can i somehow solve this problem? I use latest Android Studio 3.0.

推荐答案

这是Android Studio中的一个问题,在3.1中已修复.已判断3.1-Beta4

Kotlin相关问答推荐

在Kotlin Jetpack中重用下拉菜单

将带大括号和不带大括号的Lambda值赋给@Composable函数

可以从背景图像中点击图标吗?

处理合成层次 struct 中的深层按钮以切换视图

用Quarkus和Reactor重写异步过滤器中的数据流

如何在 Kotlin 中初始化 Short 数组?

Kotlin 函数中接收者和参数的类型相同

如何从 kotlin 中的数据类访问 val?

Map.mapTo 到另一个map

将 Completable 转换为 Single 的规范方法?

是否可以在 kotlin 中嵌套数据类?

如何在顶级函数中使用 koin 注入依赖项

使用 clear() 删除 EncryptedSharedPreferences 不起作用

Mockito 的 argThat 在 Kotlin 中返回 null

如何在使用Koin DI的活动之间共享同一个ViewModel实例?

Kotlin中的属性(properties)和参数(parameters)有什么区别?

Kotlin:测试中的 java.lang.NoSuchMethodError

从另一个列表创建一个列表

Android Compose 生产准备好了吗?

使用 Kotlin 按字母对数组进行排序