Я знаю, что в Lua можно использовать статические методы, определенные Java, благодаря разделу «Библиотеки функций Java» на http://luaj.org/luaj/README.html.
Однако я изо всех сил пытаюсь выяснить, как я могу использовать те же методы, например, у меня есть сокращенный пример:
private static class CallbackStore {
public void test(final String test) {
}
}
(Я знаю, что здесь я также могу использовать статический метод, но это невозможно в реальном сценарии)
Я использую следующий код Lua:
-- Always name this function "initCallbacks"
function initCallbacks(callbackStore)
callbackStore.test("test")
end
Что не работает, так как ожидает возврата пользовательских данных, но я даю ему строку.
И я вызываю код Lua следующим образом:
globals.load(new StringReader(codeTextArea.getText()), "interopTest").call();
CallbackStore callbackStore = new CallbackStore();
LuaValue initCallbacks = globals.get("initCallbacks");
initCallbacks.invoke(CoerceJavaToLua.coerce(callbackStore));
где код Lua возвращается codeTextArea.getText()
Суть моего вопроса в том, как мне заставить мой код работать с test
в качестве метода экземпляра?