Ren*_*ens 4 java annotations 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[])
Run Code Online (Sandbox Code Playgroud)
这是我的Role类的样子:
enum class Role {
ADMIN, USER
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要的方式:
@Secured(Role.ADMIN, Role.USER)
Run Code Online (Sandbox Code Playgroud)
我试图寻找有关如何在Kotlin中创建注释的任何示例,但我似乎找不到任何奇怪的东西.谁可以帮助我?
Oli*_*rth 10
以下编译:
enum class Role { ADMIN, USER }
annotation class Secured(vararg val value: Role)
@Secured(Role.ADMIN, Role.USER)
fun foo() {}
Run Code Online (Sandbox Code Playgroud)
就像这样:
enum class Role { ADMIN, USER }
annotation class Secured(val value: Array<Role>)
@Secured([Role.ADMIN, Role.USER])
fun foo() {}
Run Code Online (Sandbox Code Playgroud)
它们编译为相同的字节码,但Kotlin要求您使用稍微不同的语法来实例化注释.
归档时间: |
|
查看次数: |
3528 次 |
最近记录: |