Kotlin自定义注释,参数

Posted

tags:

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

我正在尝试使用参数数组创建自定义注释,但在尝试在注释的构造函数中设置参数时出现错误。它说它期望在Role []上有一个类型注释,而如果我是对的,Role []就是类型。我在文档中查找了语法,可以在这里找到:https://kotlinlang.org/docs/reference/annotations.html。但是这篇文档只解释了我如何使用注释而不是如何创建注释。

这是我的注释代码的样子:

@NameBinding
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class Secured(vararg val value: Role[])

这是我的Role类的样子:

enum class Role {
   ADMIN, USER
}

这就是我想要的方式:

@Secured(Role.ADMIN, Role.USER)

我试图寻找有关如何在Kotlin中创建注释的任何示例,但我似乎找不到任何奇怪的东西。谁可以帮助我?

答案

以下编译:

enum class Role { ADMIN, USER }

annotation class Secured(vararg val value: Role)

@Secured(Role.ADMIN, Role.USER)
fun foo() {}

就像这样:

enum class Role { ADMIN, USER }

annotation class Secured(val value: Array<Role>)

@Secured([Role.ADMIN, Role.USER])
fun foo() {}

它们编译为相同的字节码,但Kotlin要求您使用稍微不同的语法来实例化注释。

以上是关于Kotlin自定义注释,参数的主要内容,如果未能解决你的问题,请参考以下文章

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

VS code自定义用户代码片段snippet

Visual Studio 自定义代码片段在方法定义的参数列表中不起作用

Sublime Text3自定义代码片段

Kotlin 中的自定义数字键盘

如何从片段 KOTLIN 中调用意图 [重复]