Umwandle statische Variablen von Java nach Kotlin

Ich versuche den folgenden Code in Kotlin zu konvertieren UND habe immer noch eine der von Java verwendeten Klassen (Foo). Wie kann ich diese Konvertierung richtig durchführen?

Original 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();
    }
}

Autokonvertierung von Foo nach 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)
}

Problem

Bar-Klasse kann nicht mehr auf C_ID oder VALUES zugreifen (Fehler: "privater Zugriff")

wenn ich "const" vor C_ID setze, funktioniert es ... aber ich kann nicht dasselbe mit VALUES machen ("const" kann NUR für Primative oder String verwendet werden)

Gibt es eine andere Art und Weise, wie ich das tun sollte (damit sowohl Java-Code als auch Kotlin-Code auf alles in Foo zugreifen können)?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage