2016-12-08 29 views
8

Ostatnio zainteresowałem się Kotlin jako językiem, ponieważ platforma, na której się rozwijamy, jest oparta na Javie 6, a więc brakuje jej cukru syntaktycznego, który w ostatnich latach przyniósł Java.Publiczne pola kompatybilności z Javą

Jest tylko jedna rzecz, która uniemożliwia wykorzystanie Kotlin nad Javą w fazie rozwoju, to znaczy, że tworzona przez nas platforma wykorzystuje wewnętrzną refleksję i wymaga, aby członkowie byli publiczni. To nie zadziała inaczej.

Kod bajtowy wygenerowany z pliku Kotlin w rzeczywistości generuje publiczne programy pobierające i ustawiające, a same pola pozostają prywatne.

Czy istnieje sposób na przezwyciężenie tego, więc otrzymuję prawdziwe pola publiczne?

Jestem świadomy niepowodzenia projektu, który wymaga pola publicznych, ale system jest rodzajem czarnej skrzynki do nas, nie może zmienić faktu, że to musi być w ten sposób.

+5

Czy adnotacja '@ JvmField' może działać dla Ciebie? – marstran

+0

To wszystko! Słodkie! Tak łatwo. Wielkie dzięki! –

+0

Zgodnie z https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html "członek" odnosi się zarówno do metod, jak i pól. Prawdopodobnie masz na myśli "pola". Zmieniłem to pytanie. –

Odpowiedz