Одна альтернатива - LuaJava .Это позволяет использовать сценарии Lua в программе Java.Если говорить буквально о реализации интерфейсов в Lua:
LuaJava также позволяет Java реализовывать интерфейс с использованием Lua.Таким образом, любой интерфейс может быть реализован в Lua и передан в качестве параметра любому методу, а при вызове эквивалентная функция будет вызвана в Lua, а ее результат передан обратно в Java.
Примертакая реализация:
button_cb = {}
function button_cb.actionPerformed(ev) ... end
buttonProxy = luajava.createProxy("java.awt.ActionListener", button_cb)
Конечно, вы также можете вызывать «нормальные» функции Lua из Java, используя знакомый C API (адаптированный к Java).