2016-01-22 14 views
125

Mam plik źródłowy Kotlin, ale chcę przetłumaczyć go na język Java.Jak przekonwertować źródłowy plik kotlin do pliku źródłowego java

Jak mogę przekonwertować źródło Kotlin na Java?

+5

jestem całkiem pewny, nie zautomatyzowane narzędzie zostało zbudowane do tego jeszcze. Możesz go zbudować jako pierwszy! –

+17

Może być łatwiej nauczyć je czytać Kotlin –

+1

hah! W pełni się zgadzam; kotlin to radość pisania i czytania. Szczerze mówiąc, chcę mieć sposób na konwersję kotlin, aby móc sprawdzić w naszym repozytorium java, nie wprowadzając "domniemanego ciężaru uczenia się nowego języka" na moich rówieśników. Aby poprawić potencjalne odpowiedzi, usuwam wzmiankę o osobach z tego pytania. Tu nie chodzi o nauczanie, chodzi o konwersję kodu źródłowego. – activedecay

Odpowiedz

128

jak powiedział @Vadzim w IntelliJ lub Android Studio, wystarczy wykonać następujące czynności, aby uzyskać kod java z Kotlin:

  1. Menu> Narzędzia>> Pokaż Kotlin Kotlin bytecode
  2. Click przycisk Decompile
  3. skopiuj kod Java
+0

Niestety od teraz (lipiec 2017) nie spowoduje to dekompilacji klas utworzonych jako zamknięcia dla wyrażeń lambda. – csharpfolk

+7

Czy wyjście Java nie jest brzydkie? – Pacerier

+7

@Pacerier Tak jak w przypadku większości dekompilacji, jest to oczywiście –

27

Można skompilować Kotlin na kod bajtowy, a następnie użyć dezasemblera Java.

decompiling mogą być wykonywane wewnątrz InteliJ pomysłu, lub za pomocą FernFlower https://github.com/fesh0r/fernflower (dzięki @Jire)

Nie było zautomatyzowane narzędzie jak sprawdziłem kilka miesięcy temu (i nie ma planów dla jednej AFAIK)

+2

Na marginesie pamiętaj, że generics w wygenerowanym kodzie może powodować ostrzeżenia kompilatora, ponieważ Kotlin zezwala na pewne rzeczy, których kompilator java nie ma. Nadal działa w kodzie bajtowym. –

+0

@JacobZimmerman Wow, nigdy o tym nie słyszałem. Kilka przykładów? – voddan

+0

@voddan Myślę, że on odnosi się do reifikowanych leków generycznych, które nie są możliwe w czystej Jawie. – Jire

2

W Android Studio, wystarczy wykonać następujące czynności, aby uzyskać kod Java kodu bajtowego:

Wyświetl Bytecode: Narzędzia -> Kotlin -> Pokaż Kotlin kodu bajtowego Albo cmd + shift + a (Mac)/CTRL + sHIFT + a (Windows) i wpisz kod bajtowy „Kotlin”

Uwaga: dekompilacji przycisk jest dostępny tylko wtedy, gdy masz Insta lled i włączony plugin „Java Decompiler Bytecode”

java kodu bajtowego:

enter image description here

Powiązane problemy