Kotlin - 设置 @Annotations 。函数返回类型?

hta*_*oya 16 android annotations kotlin kotlin-android-extensions

有没有办法使用注释来声明 kotlin 函数的返回条件?

例如,我想告诉 lint 我的函数将在以下位置返回一个 Android 资源 ID:

fun getImageId(): Int
Run Code Online (Sandbox Code Playgroud)

我想要的东西是:

fun getImageId(): @DrawableRes Int
Run Code Online (Sandbox Code Playgroud)

失败了

我认为这是有道理的(我相信在 Java 中是可能的),因为我可能有以下内容:

 fun setImage(@DrawableRes res: Int) {
        myImageView.setImageResource(res)
    }
Run Code Online (Sandbox Code Playgroud)

并将其称为:

setImage(getImageId())
Run Code Online (Sandbox Code Playgroud)

以便它具有一系列验证,即给定int的实际上是一个 Res Id

小智 28

你可以这样做:

@DrawableRes
fun getImageId(): Int

Run Code Online (Sandbox Code Playgroud)