Android 如何在Kotlin中使用StringDef或IntDef?
指 我可以轻松创建编译验证,将字符串参数限制为特定类型的字符串(Java) e、 g 所以如果我有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将在不允许的上标记错
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