假设您具有带有默认参数的数据类

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)

在这种情况下,没有任何棉绒错误

但是,当我尝试使用默认参数时,会出现棉绒错误:
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。

最佳答案

这是Android Studio中的问题,已在3.1中修复。在3.1-beta4上检查

07-24 19:43