Я получил эту Java annotation declaration и хотите использовать его в КотлинСовместимость Java: как объявить константу массива времени компиляции в Котлине?
class CurlCommand {
Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
var groups: Array<String>? = null
}
Компилятор сообщает TYPE_MISMATCH Обязательно: kotlin.Array <kotlin.String> Найдено: kotlin.String
I 've try
Parameter(names = Array<String>(1, {i-> "-groups"}), description = "Comma-separated list of group names to be run")
var groups: Array<String>? = null
и получил «Ошибка: (20, 23) Котлин: параметр аннотации должен быть константой времени компиляции»
Как я могу удовлетворить компилятор Kotlin?
Java просто принимает
@Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
public String groups;
Java кажется лечить массивы в аннотации, как переменной длины, так что вы можете опустить фигурные скобки для отдельных значений. Котлин этого не делает. Как представляется, в последнее время был достигнут определенный прогресс: https://youtrack.jetbrains.com/issue/KT-2576#tab=History –