java - 如何在 Kotlin 注解中写一个成员?

标签 java kotlin annotations

我有下一个 Java 注释:

@Retention(RetentionPolicy.RUNTIME)
@MapKey
@interface ViewModelKey {
    Class<? extends ViewModel> value();
}

为了在 Kotlin 注释中转换它,我将其重写如下:

@Retention(AnnotationRetention.RUNTIME)
@MapKey
annotation class ViewModelKey {
    fun value(): Class<out ViewModel> {}
}

但是有一个错误:Members are not allowed in annotation class

如果不允许使用成员,我该如何在 Kotlin 中转换 Java 注释?

最佳答案

在 Kotlin 中,您必须在注释中定义属性而不是函数:

@Retention(AnnotationRetention.RUNTIME)
@MapKey
annotation class ViewModelKey(val value: KClass<out ViewModel>)

参见 https://kotlinlang.org/docs/reference/annotations.html了解详情。

关于java - 如何在 Kotlin 注解中写一个成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56592797/

相关文章:

java - ScriptEngineManager 可以给我它刚刚用 Java 编译的 Javascript 函数的名称吗

带数据库的 Java GUI

kotlin - Kotlin 空安全是否在编译器中实现?

java - 在 Hibernate 中使用注释映射接口(interface)集合

java - @ManyToMany Hibernate 注释中正确的 CascadeType 是什么?

java - 在哪里可以下载 Optaplanner 6.3 Nightly Snapshot?

java - 设置 JSeperator 的宽度

java - Kotlin 全部替换字符串中的多个字符

kotlin - 如何编写Kotlin代码以存储从7到101的所有奇数并打印它们的和?

javascript - 使用存储插件存储在 annotator.js 中不起作用