Öffentliche Felder für Java-Kompatibilität

8

Ich fand kürzlich Interesse an Kotlin als Sprache, weil die Plattform, für die wir entwickeln, Java-6-basiert ist und daher keinen syntaktischen Zucker enthält, den die letzten Jahre nach Java gebracht haben.

Es gibt nur eine Sache, die es unmöglich macht, Kotlin über Java in der Entwicklung zu verwenden, das heißt, die Plattform, für die wir entwickeln, verwendet interne Reflexion und verlangt, dass Mitglieder öffentlich sind. Es wird sonst nicht funktionieren.

So erzeugt der Bytecode, der aus der Kotlin-Datei erzeugt wird, tatsächlich öffentliche Getter und Setter, die Felder selbst bleiben jedoch privat.

Gibt es eine Möglichkeit, dies zu überwinden, damit ich echte öffentliche Felder bekomme?

Ich bin mir des Entwurfsfehlers bewusst, der öffentliche Felder erfordert, aber das System ist für uns eine Art Black Box, wir können nicht die Tatsache ändern, dass es so sein muss.

    
John Smith 08.12.2016, 12:46
quelle

1 Antwort

9

Die Annotation @JvmField sollte Ihnen helfen. Dadurch wird der Kotlin-Compiler die Eigenschaft als ein Feld auf der JVM verfügbar machen. Siehe hier: Ссылка

    
marstran 08.12.2016, 14:14
quelle

Tags und Links