我的Kotlin项目需要Java @StringDef
注释。
不幸的是,这似乎很困难。我在这里找到了讨论:
https://discuss.kotlinlang.org/t/intdef-and-stringdef-not-being-checked-at-compile-time/7029/3
据我了解,这可能是皮棉问题。不进行编译时检查。均未提出建议。我可以将任何String添加为参数。
我最终只用常量创建了一个Java类。
public class AppFeatures {
/** @hide */
@StringDef({USER, USER_ACCOUNT})
@Retention(RetentionPolicy.SOURCE)
public @interface AppFeature {}
/** Constants for certain features */
public static final String USER = "user";
public static final String USER_ACCOUNT = "user.account";
}
使用Kotlin等效项时,没有编译时检查或建议。
我尝试了类似的方法,但没有成功:
@StringDef(USER, USER_ACCOUNT)
@Retention(AnnotationRetention.SOURCE)
annotation class AppFeature
const val USER = "user"
const val USER_ACCOUNT = "user.account"
那我怎么在Kotlin中实现呢?