私はJavaクラスを持っています:
class SomeClass{
private int i;
public SomeClass(int i){
this.i = i;
}
}
そして、Lua スクリプトでこのクラスのインスタンスを作成し、LuaJ ライブラリを使用して Java 関数に渡す必要があります。どうすればそれができますか?
これは、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 -- Since it's a private field
メソッドがある場合はpublic int getValue()
、 を使用できますobj:getValue()
。
長い間試していなかったので、今、自分でこれをテストしました。