- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 Java/Scala 代码,通过 LuaJava 调用 Lua。我想模仿一些从J/S管道到Lua管道的对象层次结构;基本上是在语言中拥有伴随对象。换句话说,如果我在 J/S 中创建一个“Cracker”,我会在 Lua 中创建一个“Cracker”对象。然后,当我在 J/S 中调用“eatCracker”这样的方法时,我也可以调用 Lua 伴生对象的“eatCracker”。
问题是,我不知道如何创建和存储 Lua 对象,以及如何调用特定对象上的方法。
有人可以帮忙吗?
最佳答案
当您将一个对象从 J/S 推送到 Lua 解释器并创建对其的全局引用时,随后运行并访问该对象的 Lua 脚本将访问与 J/S 端相同的对象,而不是它的副本。因此,一旦脚本结束,Java/Scala 就会看到由 Lua 脚本修改的具有状态(数据成员)的对象。如果 J/S 随后修改它,并且运行另一个访问该对象的脚本,则该脚本将看到由 J/S 修改的新状态。
因此,调用方法时没有模仿:方法是绑定(bind)到对象的函数,因此从 Lua 或 Java/Scala 调用它会导致访问相同的对象(相同的内存块)。
但是,构造时需要模仿:如果在 J/S 中构造对象,则必须显式将其推送到 Lua 解释器才能使用;如果解释器运行的 Lua 脚本创建了一个新对象,J/S 必须拉取它(通过引用该对象的全局变量)。对于处置,我打赌当任何一方(J/S 或 Lua)都没有对该对象的引用时,该对象将自动完成。
因此,您需要做的就是确保您在两个环境中所关心的对象都在 J/S 端进行推送和拉取(Lua 端是“从属”)。我认为自动化这不是一个好主意:明确地仅推/拉双方需要的内容,不多也不少。
关于java - LuaJava:从Java调用Lua对象上的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062520/
我真的被困在这个问题上,绝对搜索了我的谷歌,试图用luajava将一个表从lua“导入”到java中的数组......现在,我已经能够做一些简单的事情,在 java 中打印 lua-vars 并从表中
我有一个 super 简单的程序。每当我尝试在 Eclipse 中运行它时,我都会收到此错误: Exception in thread "main" java.lang.UnsatisfiedLink
我有 Java/Scala 代码,通过 LuaJava 调用 Lua。我想模仿一些从J/S管道到Lua管道的对象层次结构;基本上是在语言中拥有伴随对象。换句话说,如果我在 J/S 中创建一个“Crac
我已经使用 LuaJava 添加了 lua 脚本的加载和执行到 java,但是当我运行如下脚本时: print("works") 直到程序停止运行后才会显示。 这是我的 Java 代码: LuaSta
有谁知道 LuaJava 是否可以直接使用最新的 LuaBinaries 还是仅使用 5.1.1 二进制文件?谢谢。 http://www.keplerproject.org/luajava/inde
我正在使 LuaJava 适应我的 Android 应用程序,并且想要运行 OpenGL 函数的脚本。我使用 PushJavaObject 将 GL 上下文推送到函数中的 Lua,它可以工作。但是我不
是否可以在 Android 应用程序中使用 LuaJava? LuaJava 项目目录包含适用于 Windows 和 Linux 的 makefile。为Android创建一个并使用NDK编译不会太难
我正在使用 luajava 开发游戏。当我在 lua 协程中调用 java 函数时,出现错误“无效的方法调用。没有这样的方法。”这是代码 package com.soyomaker; import o
我正在使用 luajava。当lua执行错误时,我无法捕获异常,然后jdk崩溃了。那么如何在 lua 中捕获异常?我只是捕获这样的错误(java 代码): LuaState ls = LuaState
我打算使用 LuaJava 在我的 Java/Android 应用程序中运行脚本。 当我运行 Lua 脚本时,它是否在另一个线程中执行? 如何管理 Lua 代码的执行,我如何知道脚本已完成执行?如果我
我正在尝试在 XPrivacyLua 自定义 Hook 中获取系统设置的值。 Settings.Secure | Android Developers #getInt() function after
我开始通过 LuaJava 学习 Java 中的 Lua 脚本用法;我的 IDE 是 Eclipse。 但是当我执行这个简单的 Hello World 片段时,Eclipse 控制台中没有任何输出。
我想打电话: LuaState.pcall(num_args,num_returns, error_handler_index). 我需要知道如何为这个函数设置错误处理程序。事实上,我认为有人展示如
我的项目使用 LuaJava 作为脚本解释器,通过 AndroLua 在桌面和安卓系统中使用。我希望能够调试它,但我无法安排它。 我尝试过使用 Eclipse 插件 Koneki,它的文档很少,而且似
我读过很多关于 LuaJava(库)的好东西。但是,我仍然找不到任何关于如何在 Lua 脚本和 Java 应用程序之间传输数据的好的文档。这是怎么做到的?如果我错过了某处的教程,我深表歉意......
正如标题所说,我对 LuaJava 和 EnumMap 有疑问。我正在尝试做一个角色扮演游戏库,所以我们有一个具有一些属性的角色和它们的列表。在下面的代码中,我将只报告重要的事情。 我有一个名为 Co
我正在开发一个应用程序,它有一个 GUI(但不是 Java swing 和 JFrame 的东西),我想将 Lua shell 合并到 GUI 中。 LuaJava 没有关于如何执行此操作的良好文档(
在我们的项目中,我尝试从 lua 调用一个具有可变数量参数的 java 方法。所以 java 方法的代码如下所示: public static void addEvent( String luaFil
我在让这个库在我的 OSX 安装上运行时遇到了很多问题。特别是,我想将它与 Java 1.6 VM 一起使用,但在我编译它之后,我得到以下信息: java -cp "luajava-1.1.jar"
我是一名优秀的程序员,十分优秀!