Kotlin: как передать массив в аннотацию Java

Я хочу использовать аннотацию @OneOf от package io.dropwizard.validation;

Использование Java:

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

Использование Котлина:

Я пробовал это:

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

и это:

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

Все, что я получаю, это:

Ошибка ввода типа. Ожидаемый тип несоответствия:

требуется: Строка

найдено: Array<String>

Версия Котлина: 1.1.2-2

Ответ 2

В Kotlin 1.2 он поддерживает литерал массива в аннотации. Таким образом, синтаксис ниже становится действительным в Kotlin 1.2:

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

Ответ 3

В качестве примера из Kotlin docs

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

Ответ 4

Пример параметров аннотации, отличных от значения. Не-литералы также могут быть переданы внутрь []

@RequestMapping(value = "/{isbn}", method=[RequestMethod.GET])
fun getBook(@PathVariable isbn: String) : Book = bookRepository.findBookByIsbn(isbn)