Подтвердить что ты не робот

Как преобразовать исходный файл kotlin в исходный файл java

У меня есть исходный файл Kotlin, но я хочу перевести его на Java.

Как преобразовать Kotlin в источник Java?

4b9b3361

Ответ 1

Как сказал @Vadzim, в IntelliJ или Android Studio вам просто нужно сделать следующее, чтобы получить код java от kotlin:

  1. Menu > Tools > Kotlin > Show Kotlin Bytecode
  2. Нажмите кнопку Decompile
  3. Скопируйте код Java

Обновить:

С недавней версией (1. 2+) плагина Kotlin вы также можете напрямую выполнять Menu > Tools > Kotlin → Decompile Kotlin to Java.

Ответ 2

Вы можете скомпилировать Kotlin в байт-код, а затем использовать дизассемблер Java.

Декомпиляция может быть выполнена внутри IntelliJ Idea или с помощью FernFlower https://github.com/fesh0r/fernflower (спасибо @Jire)

Не было никакого автоматизированного инструмента, поскольку я проверил пару месяцев назад (и никаких планов относительно одного AFAIK)

Ответ 3

Вы можете перейти в Инструменты> Kotlin> Показать байт-код kotlin

enter image description here

enter image description here

enter image description here

Ответ 4

В Android Studio вам просто нужно сделать следующее, чтобы получить код байт-кода Java:

  • Показать байт-код: ToolsKotlinShow Kotlin Bytecode

  • Или: cmd + shift + A (Mac)/ctrl + shift + A (Windows) и тип Kotlin Bytecode

Примечание. Кнопка декомпиляции доступна, только если вы установили и включили плагин "Decompiler Java Bytecode",

java код байт-кода:

enter image description here

Ответ 5

Как сказал @louis-cad "Источник Kotlin → Байт-код Java → Источник Java" - единственное решение.

Но я хотел бы упомянуть о том, как я предпочитаю: использование декомпилятора Jadx для Android.

Он позволяет видеть, что генерирует код для закрытий, и, как для меня, полученный код является "более чистым", чем один из декомпилятора IntelliJ IDEA.

Обычно, когда мне нужно увидеть исходный код Java любого класса Kotlin, я делаю:

  • Создать apk: ./gradlew assembleDebug
  • Откройте apk с помощью Jadx GUI: jadx-gui./app/build/outputs/apk/debug/app-debug.apk

В этой функции базового IDE графического интерфейса работает: поиск по классам, нажмите, чтобы перейти к объявлению. и т.п.

Также весь исходный код можно сохранить, а затем просмотреть с помощью других инструментов, таких как IntelliJ IDEA.

Ответ 6

  1. открыть файл kotlin в андроид-студии
  2. перейти к инструментам → kotlin → kotlin bytecode
  3. в новом окне, которое открывается рядом с вашим файлом kotlin, нажмите кнопку декомпиляции. он создаст java-эквивалент вашего файла kotlin.

Ответ 7

Я компилирую Kotlin в байтовый код, а затем декомпилирую его на Java. Я компилирую компилятор Kotlin и декомпилирую с помощью cfr.

Мой проект здесь.

Это позволяет мне скомпилировать это:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive

tailrec fun findFixPoint(x: Double = 1.0): Double =
        if (x == Math.cos(x)) x else findFixPoint(Math.cos(x))

К этому:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive;

public final class ExampleKt {
  public static final double findFixPoint(double x) {
    while (x != Math.cos(x)) {
      x = Math.cos(x);
    }
    return x;
  }

  public static /* bridge */ /* synthetic */ double findFixPoint$default(
      double d, int n, Object object) {
    if ((n & 1) != 0) {
      d = 1.0;
    }
    return ExampleKt.findFixPoint(d);
  }
}

Ответ 8

Чтобы преобразовать исходный файл Kotlin исходный файл Java вам нужно (когда вы находитесь в Android Studio):

  1. Нажмите Cmd - Shift - A на Mac или нажмите Ctrl - Shift - A на компьютере с Windows. enter image description here

  2. Введите искомое действие: Kotlin Bytecode и выберите Show Kotlin Bytecode из меню.

enter image description here

  1. Нажмите кнопку " Decompile в верхней части панели Kotlin Bytecode.

enter image description here

  1. Теперь вы получаете декомпилированный файл Java вместе с файлом Kotlin на соседней вкладке:

enter image description here

Надеюсь это поможет.