У меня есть приложение, написанное в Scala, и некоторые из моих членов команды хотят получить версию Java. Это демонстрационное приложение для использования другого API, написанного в Scala, и они хотят, чтобы Java-версия приложения могла использовать API с Java. Тем не менее, приложение несколько велико, и я не хочу вручную перезаписывать Java (и они не хотят изучать Scala). Есть ли какой-нибудь инструмент, который автоматически генерирует (читаемый) код Java из кода Scala?
Автоматически преобразовывать код Scala в код Java
Ответ 1
они хотят, чтобы Java-версия приложения имела возможность использовать API с Java
Scala классы могут использоваться с Java (так как все байт-коды JVM в конце). Можете ли вы просто упаковать банку с вашими классами для их использования?
Ответ 2
Я не думаю, что можно преобразовать из scala обратно в стандартную java, поскольку scala выполняет некоторые довольно низкоуровневые манипуляции с байтовым кодом. Я на 90% уверен, что они делают некоторые вещи, которые не могут быть точно переведены обратно в нормальный Java-код.
Ответ 3
Нет, такого инструмента нет.
Scala в некотором смысле является coffescript Java.
Посмотрите, как все эти фанки-классы в coffescript переведены на javascript. Тот же * будет с scala.
Я не думаю, что есть много функций, которые нельзя каким-либо образом перевести на Java, но большинство функций будут переведены на чрезвычайно загроможденный код, даже если человек сделает эту работу.
Но есть java для переводчиков scala.
* не говоря буквально о классах
Ответ 4
Не уверен, что это сработает, но вы можете запускать файлы классов через декомпилятор java.
Если он работает вообще, результат должен быть уродливым, как черт.
Ответ 5
Вы должны декомпилировать файлы .class в исходные файлы java, будьте осторожны, что scala создает еще много файлов .class
Вы можете использовать javap из oracle, включенного в декомпилятор sdk или jad
для подробного объяснения прочитайте следующую статью: