在kotlin中使用java自定义注释

问题描述 投票:3回答:1

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

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

java android kotlin annotations
1个回答
2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.