Kotlin:将注解作为参数传递给注解

3
在Kotlin中,我正在尝试创建一个可以接受其他注解的数组(vararg)的注解。
我想做类似这样的事情:
annotation class MyAnnotation(
  vararg val annotation: Annotation
)

问题是它告诉我Annotation不是注释的有效参数。如果我尝试一个特定的注释类,它就可以工作了。
我正在尝试创建一个注释,它可以获取其他注释(用于验证),按顺序处理它们,并产生一个统一的效果。
是否有一些特殊的 Kotlin 语法,我可以用来让它允许我提供各种注释的数组?
1个回答

1
我认为任何可为空的内容(例如接口、Java类型等)都不能用作 Kotlin 注解的参数。也许你可以使用。
annotation class MyAnnotation(vararg val annotations: KClass<in Annotation>)

我在稍微不同的情境下做了类似的事情,但它似乎不喜欢 <in Annotation>,所以最终我只能使用 <*> 并在之后进行验证。然而,对于这种用例,注释可能具有参数,因此仅接受类本身是不够的。 - samanime

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接