LuaJ:将对象引用传递给lua代码

时间:2018-06-26 08:03:28

标签: java luaj

我目前正在与LuaJ合作开发一个项目,该库允许Java解释并执行Lua代码。到目前为止,我只能传递Lua本身可以理解的值,例如基元,表,用户数据等。

我找不到的方法是,例如,通过传入对象引用作为参数来调用Lua中定义的函数。

这很有意义。 Lua无法理解Java对象引用,这很公平。

我想出的解决方案实际上是创建一个虚拟内存管理器。在我能想到的最简单的实现中,它实际上是一个Map<Integer,Object>。 Lua脚本中使用了Integer位,类似于doSomethingWithObject(object),其中object实际上是映射中Integer键的LuaValue。

当调用doSomethingWithObject(object)时(这是Java中定义的一个函数,是从OneArgFunction扩展而来的),它必须挂接到Map<Integer,Object>中,以整数形式获取对象值,并对该对象执行任何操作。

这闻起来很香。我不确定是否有更好的方法可以做到这一点。如果有的话,我很乐意阅读所有可以获取的信息。

0 个答案:

没有答案