在kotlin中使用java自定义注释
我已经用java创建了一个自定义注释,并试图在Kotlin编写的类中使用它,但是在编译时,我得到了一个错误 注释参数必须是编译时常量 这是密码在kotlin中使用java自定义注释,java,android,kotlin,annotations,Java,Android,Kotlin,Annotations,我已经用java创建了一个自定义注释,并试图在Kotlin编写的类中使用它,但是在编译时,我得到了一个错误 注释参数必须是编译时常量 这是密码 @Target(ElementType.FIELD) @Retention(RetentionPolicy.CLASS) public @interface EdsFieldInfo { int persianName(); String culomnName() default ""; int domainVals() default -1
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.CLASS)
public @interface EdsFieldInfo {
int persianName();
String culomnName() default "";
int domainVals() default -1;
}
这就是我使用注释的地方
@EdsFieldInfo(persianName = R.string.customer_file_id, culomnName = "FileId")
@ColumnInfo(name = "FileId", typeAffinity = ColumnInfo.TEXT)
var fileId: String?,
这里显示了错误
persianName = R.string.customer_file_id
我试图找到一个解决办法,但不能请帮我解决这个问题?多谢各位 由于
R
是在编译时编译的,我很怀疑您不能在注释中使用这样的R.string.customer\u file\u id
变量。也许在Android的构建器真正构建R
之前,它就已经进化了
所以我恐怕你应该用一个常量来代替。问题在第一行和第二行:
persianName=R.string.customer\u file\u id,culomname=“FileId”
大部分都是可疑的:persianName=R.string.customer\u file\u id
-culomname=“FileId”
和name=“FileId”
看一看:这是正确的,但我想知道is在主项目中是如何工作的,在我将代码移动到库项目后,它开始抛出此错误可能您的R.string.customer\u file\u id
仍在主项目中?如果你将代码移动到另一个模块,我相信它必须在该模块内。不,我很确定我也移动了哪些相关字符串