我已经在Java中创建了一个自定义批注,并尝试在 Kotlin 书面类中使用它,但是在编译时,出现了
错误注释参数必须是编译时常量
这是代码
@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
我试图为此找到解决方案,但是请您帮我解决此问题吗?谢谢。
答案 0 :(得分:2)
由于R
是在编译时进行编译的,因此我非常怀疑您不能在注释中使用此类R.string.customer_file_id
变量。也许它在Android的构建器实际构建R
之前就已被淘汰。
因此,恐怕您应该改用常量。