注释:arrayOf需要的时候
比方说,我们有一个Java注释如下:
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Hans { String[] value() default {}; }
在Kotlin中,我被允许使用注释如下:
@Hans(value = "test")
只要我将属性名称从“值”更改为“名称”不允许使用此语法,而不是我需要有arrayOf(..)。
@Hans(name = arrayOf("test"))
这是一个错误还是设计决定,如果是这样,背后的原因是什么?
非常感谢提前亲切的问候
不,这不是一个错误。 Java处理value
注释特别允许在使用时省略注释参数名称。 Kotlin遵循这种特殊的处理方式,也允许你省略参数名称,允许你写@Hans("test")
。 支持这个数组参数的语法需要将参数视为vararg
参数,所以Kotlin arrayOf
,并允许您省略arrayOf
。