2017-05-19 42 views
12

我想用@OneOf註釋從package io.dropwizard.validation;科特林:如何數組傳遞到Java註釋

的Java用法:

@OneOf(value = {"m", "f"}) 

科特林用法:???

我已經試過這樣:

@OneOf(value = arrayOf("m", "f")) 

這:

@OneOf(value = ["m", "f"]) 

我得到的是:

類型推斷失敗。預期類型不匹配:

需要:字符串

發現:Array<String>

科特林版本:1.1.2-2

+0

要傳遞數組作爲可變參數的參數,使用擴散(*)運算符。 '@OneOf(value = * arrayOf(「m」,「f」))' –

回答

6

在科特林1.2,它支持陣列中註釋文字。因此,下面的語法變成科特林1.2有效:

@OneOf(value = ["m", "f"]) 
1

作爲一個例子,從Kotlin docs

@AnnWithArrayMethod(names = arrayOf("abc", "foo", "bar")) class C