在kotlin中使用java自定义注释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在kotlin中使用java自定义注释相关的知识,希望对你有一定的参考价值。

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

我试着找到一个解决方案,但不能帮我解决这个问题?谢谢。

答案

由于R是在编译期间编译的,我非常怀疑你不能在注释中使用这样的R.string.customer_file_id变量。也许它在android的构建者实际构建R之前得到了改进。

所以我担心你应该使用常数代替。

以上是关于在kotlin中使用java自定义注释的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java / kotlin 中的注释处理将方法附加到现有类?

vbscript 各种自定义代码片段 - 有关详细信息,请参阅注释

文件类的注释

如何在java web项目中添加自定义注解

Sublime Text3自定义代码片段

Kotlin 中的自定义数字键盘