LuaJ 如何在 Lua 脚本中创建 Java 对象的实例?

我有一个 Java 类:

class SomeClass{
 private int i;
 public SomeClass(int i){
  this.i = i;
 }
}

而我需要在 Lua 脚本中创建这个类的实例,并使用 LuaJ 库将它传递给 Java 函数。如何实现?

点赞
用户5352026
用户5352026

以下是从lua.org上找到的示例代码:

jframe = luajava.bindClass( "javax.swing.JFrame" )
frame = luajava.newInstance( "javax.swing.JFrame", "Texts" );
frame:setDefaultCloseOperation(jframe.EXIT_ON_CLOSE)
frame:setSize(300,400)
frame:setVisible(true)

来源:http://www.luaj.org/luaj/3.0/README.html#luajava

对于你的示例,翻译如下:

local obj = luajava.newInstance("your.package.SomeClass",123)
print(obj.i) --> nil -- 因为它是一个私有字段

如果你有一个方法public int getValue(),你可以使用obj:getValue()

我刚刚测试了一下,因为我很久都没有测试了。

2016-02-14 13:16:58