Интеграция Котлина в Java-коде?

Пример. В C-коде можно вызвать части кода ассемблера, например:

int main() { //... stuff __asm { lea ebx, hal mov ecx, [ebx]hal.same_name ; mov esi, [ebx].weasel ; } // .. further stuff return 0; } 

Возможна ли такая интеграция кода для кода Котлина в файлах Java (* .java)?

(Я не говорю о JNI или C / C ++ в Java!) Я хотел бы расширить уже существующий (AndroidStudio-) Java-исходный код с языком Kotlin.

 //.. this is *.java file public class MyAlreadyExistingJavaClass { private int memberVar; public MyAlreadyExistingJavaClass() { } // this is Kotlin within *.java file // extend this Java file with this constuctor in KOTLIN ? // would make above default constructor unneccessary. class MyAlreadyExistingJavaClass(number: Int = 0) { memberVar = number; } } 

Java не предоставляет никакого синтаксиса для включения фрагментов кода в Kotlin или любого другого языка в файл Java. Однако это не обязательно для выполнения вашей задачи. Вы можете просто определить требуемый конструктор в качестве заводской функции в отдельном файле Kotlin:

 fun MyAlreadyExistingJavaClass() = MyAlreadyExistingJavaClass(0) 

Если вы хотите определить новый метод, а не конструктор, вы можете использовать функции расширения .

Я разработчик Groovy, а не разработчик Kotlin, но похоже, что Kotlin предоставляет скриптовый API. Groovy, JavaScript и JRuby могут быть вызваны из класса Java с использованием стандартного API Java ScriptEngine. Вы хотели бы, чтобы что-то подобное приблизилось к встраиванию Kotlin в классе Java. Я говорю приблизительный, потому что он не будет запускаться напрямую, как пример сборки, но будет передан через реализацию сценария Kotlin, совместимую с ScriptEngine.