将单个元素分配给Kotlin注释中的IntArray值属性

时间:2017-11-10 00:36:06

标签: annotations kotlin

我有一个声明为

的自定义注释
@Target(AnnotationTarget.FUNCTION)
annotation class Anno(val value: IntArray, val attr2: Int = 0)

对于单个元素声明,我可以在Java类中使用上面的注释

@Anno(1)

但是在Kotlin课上写同样的东西时,我必须把括号括起来

@Anno([1])

在这种情况下,不需要括号,还是我声明注释错误?我使用的是Kotlin版本1.2.0-rc-39

1 个答案:

答案 0 :(得分:1)

是的,方括号(Kotlin 1.2+)或php artisan backpack:base:install(Kotlin 1.2-)是必需的。

但只要这是你的注释,用Kotlin编写,你就可以用它来做fancy things,就像服用lambdas或varargs一样,所以你可以尝试根据需要调整结果语法。例如,即使在Kotlin 1.2中,这也是有效的语法 -

arrayOf

您需要在最后添加@Target(AnnotationTarget.FUNCTION) annotation class Anno( val attribute: String, vararg val value: Int ) @Anno("test", 1, 2, 3) fun test() = 42 参数。