0

私はJavaクラスを持っています:

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

そして、Lua スクリプトでこのクラスのインスタンスを作成し、LuaJ ライブラリを使用して Java 関数に渡す必要があります。どうすればそれができますか?

4

1 に答える 1

1

これは、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()

長い間試していなかったので、今、自分でこれをテストしました。

于 2016-02-14T13:16:58.370 に答える