Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Kotlin中使用StringDef或IntDef?_Android_Kotlin_Annotations - Fatal编程技术网

Android 如何在Kotlin中使用StringDef或IntDef?

Android 如何在Kotlin中使用StringDef或IntDef?,android,kotlin,annotations,Android,Kotlin,Annotations,指 我可以轻松创建编译验证,将字符串参数限制为特定类型的字符串(Java) e、 g 所以如果我有 class TestAnnotation(@AllowedString private val name: String) { fun printName(@AllowedString name: String) {} } 当我编码时 val testAnnotation = TestAnnotation("not_allowed") Android Studio将在不允许的上标记错

我可以轻松创建编译验证,将字符串参数限制为特定类型的字符串(Java)

e、 g

所以如果我有

class TestAnnotation(@AllowedString private val name: String) {
    fun printName(@AllowedString name: String) {}
}
当我编码时

val testAnnotation = TestAnnotation("not_allowed")
Android Studio将在
不允许的
上标记错误,因为它不在列表中

如果我在
AllowedString
注释界面中转换为Kotlin,如下所示,它将不再工作。为什么?

import android.support.annotation.StringDef
import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy.SOURCE

@Retention(SOURCE)
@StringDef("allow_one", "okay_two")
annotation class AllowedString
为什么?

这似乎是一个众所周知的问题:,
import android.support.annotation.StringDef
import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy.SOURCE

@Retention(SOURCE)
@StringDef("allow_one", "okay_two")
annotation class AllowedString