LuaJ を Scala で使用しようとしています。ほとんどのことは機能します (正しく行えば、実際にはすべて機能します!) が、Scala のセッター実装のおかげで、オブジェクトの値を設定するという単純なタスクが信じられないほど複雑になっています。
スカラ:
class TestObject {
var x: Int = 0
}
ルア:
function myTestFunction(testObject)
testObject.x = 3
end
この Lua 関数を含むスクリプトまたは行を実行し、TestObject の強制インスタンスを myTestFunction に渡すと、LuaJ でエラーが発生します。LuaJ は値を直接記述しようとしており、Scala では暗黙的に定義されたセッターを経由する必要があります (恐ろしい名前 x_= を使用します。これは有効な Lua ではないため、関数として呼び出しようとしても Lua は解析されません)。 .
前述したように、独自のセッターを定義するか、@BeanProperty マークアップを使用するなど、これに対する回避策があります。簡単に書けるはずのコードをもっと複雑にしてしまうだけです。
ルア:
function myTestFunction(testObject)
testObject.setX(testObject, 3)
end
そのような割り当てのセッターを暗黙的に呼び出すように luaj を取得する方法を知っている人はいますか? または、おそらくそのようなことを実装するために、luaj ソース コードのどこを調べることができますか?
ありがとう!