在Kotlin中使用Java自定义注释

时间:2018-08-20 10:38:40

标签: java android kotlin annotations

我已经在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

我试图为此找到解决方案,但是请您帮我解决此问题吗?谢谢。

1 个答案:

答案 0 :(得分:2)

由于R是在编译时进行编译的,因此我非常怀疑您不能在注释中使用此类R.string.customer_file_id变量。也许它在Android的构建器实际构建R之前就已被淘汰。

因此,恐怕您应该改用常量。