Как конвертировать Kotlin файл в Java исходный код?
Использование декомпилятора Kotlin в IntelliJ IDEA
Самый простой и надёжный способ конвертировать Kotlin в Java — использовать встроенную функцию декомпиляции в IntelliJ IDEA (или Android Studio). IDE автоматически показывает Java-эквивалент вашего Kotlin-кода. Вот пошаговая инструкция:
- Откройте ваш Kotlin-файл (например,
Main.kt). - В меню выберите Tools → Kotlin → Show Kotlin Bytecode.
- В открывшейся панели нажмите кнопку Decompile.
- Вы увидите Java-код, который IntelliJ сгенерировала на основе байт-кода.
Для вашего примера с User и processUsers результат будет примерно таким:
// Java код, сгенерированный из Kotlin
import java.util.List;
import java.util.stream.Collectors;
public final class MainKt {
public static final List<String> processUsers(List<User> users) {
return users.stream()
.filter((it) -> it.getAge() >= 18)
.map((it) -> it.getName() + " (" + it.getAge() + " лет)")
.collect(Collectors.toList());
}
}
public final class User {
private final String name;
private final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public final String getName() {
return name;
}
public final int getAge() {
return age;
}
// equals(), hashCode(), toString() — сгенерированы автоматически
}
Важные замечания:
- Код будет содержать синтаксис Java 8+ (лямбды, Stream API). Если ваш проект использует более старую версию Java, придётся адаптировать вручную.
- Имена переменных вроде
itостанутся из Kotlin. Вы можете переименовать их в более осмысленные (например,user). - Data class превращается в обычный класс с конструктором, геттерами и методами
equals,hashCode,toString. - Некоторые Kotlin-специфичные конструкции (например,
inlineфункции,reifiedтипы) могут не иметь прямого Java-эквивалента — их нужно переписывать вручную.
Альтернативные инструменты
Если у вас нет IntelliJ IDEA под рукой, можно использовать онлайн-сервисы, например Kotlin Playground (play.kotlinlang.org) — там есть опция "Show Java". Или воспользуйтесь утилитой kotlinc с флагом -Xjava-output, но это требует настройки.
Помните: декомпиляция — это отличная отправная точка, но полученный код часто требует доработки: добавления аннотаций, улучшения читаемости, замены стримов на циклы для совместимости со старыми версиями Java. Используйте этот метод как базу, а затем дорабатывайте вручную.
<<Ручная конвертация с помощью плагина "Java to Kotlin" (наоборот)
Хотя прямого плагина "Kotlin to Java" для Android Studio нет, вы можете использовать обратный подход: вставить Kotlin-код в Java-файл и позволить IDE предложить конвертацию. Этот метод работает, если у вас установлен плагин Kotlin.
Попробуйте следующее:
- Создайте пустой Java-файл (например,
User.java). - Скопируйте ваш Kotlin-код в этот файл — IntelliJ подчеркнёт его красным.
- Нажмите Alt+Enter на подчёркнутом коде и выберите "Convert to Java".
Это не всегда срабатывает идеально, но для простых классов и функций — работает. Если ваша цель — получить Java-код для документации или ревью, а не для компиляции, этот способ быстрее, чем ручное переписывание.
Минус: метод не подходит для сложных проектов с корутинами или расширениями. Для них лучше использовать первый вариант (декомпиляцию байт-кода).