我想创建一个接收Class参数的注释,JAVA中的示例应该是
@Retention(RUNTIME)
public @interface CustomAnnotation {
Class<Comparable<?>> comparator();
}
我想在Kotlin应该是:
@Retention(AnnotationRetention.RUNTIME)
annotation class CustomAnnotation(
val comparator: Class<Comparable<*>>
)
但是在Kotlin中得到一条错误消息Invalid type of annotation member
那么在Kotlin中应该如何接受一个类作为参数呢?
答案 0 :(得分:2)
请参阅annotations上的语言参考:
如果需要指定一个类作为注释的参数,请使用Kotlin类(
KClass
)。
因此,使用Kotlin等效项代替Java Class<Comparable<*>>
:KClass<Comparable<*>>
:
@Retention(AnnotationRetention.RUNTIME)
annotation class CustomAnnotation(
val comparator: KClass<Comparable<*>>
)