Я пытаюсь преобразовать следующий код в Kotlin И еще есть один из классов (Foo), используемых Java. Каков правильный способ сделать это преобразование?
Оригинальная Java:
public class Foo {
public static final String C_ID = "ID";
public static final String C_NAME = "NAME";
public static final String[] VALUES = {"X", "Y", "Z"};
public static String[] getAll() {
return new String[] {C_ID, C_NAME};
}
}
public class Bar {
public void doStuff() {
String var1 = Foo.C_ID;
String[] array1 = Foo.VALUES;
String[] array2 = Foo.getAll();
}
}
Автоматическое преобразование Foo в Kotlin
object Foo {
val C_ID = "ID"
val C_NAME = "NAME"
val VALUES = arrayOf("X", "Y", "Z")
val all: Array<String>
get() = arrayOf(C_ID, C_NAME)
}
Проблема:
Класс Bar больше не может обращаться к C_ID или VALUES (ошибка: "частный доступ" )
если я поставил "const" перед C_ID, он работает... но я не могу сделать то же самое с VALUES ( "const" может ТОЛЬКО использоваться на примитивах или String)
Есть ли другой способ, которым я должен это делать (так как код Java и код Kotlin могут получить доступ ко всему в Foo)?