問題タブ [luaj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
595 参照

java - bindClass と newInstance の違い

luajava のこれら 2 つの関数の違いは何ですか:

奇妙なことに、これに対する決定的な答えを見つけることができませんでした。instanceこれらの関数を使用しているほとんどの Web サイトでは、わざわざ違いを説明することはなく、との両方から同じメソッドを呼び出すことができるようですclass

0 投票する
1 に答える
1296 参照

java - Java オブジェクトを LuaJ に公開する方法

作業中の Java アプリケーションで Lua を使用する必要があるため、最近 Lua の学習を開始しました。このために、LuaJ を使用しています。インターネットで検索して、Java メソッドを LuaJ に公開する方法を見つけましたが、Java オブジェクトを公開する (LuaJ にアクセスを許可する) 方法がわかりません。C# オブジェクトを Lua に公開することに関する別の投稿を見ましたが、その答えは次のとおりです。

Lua と任意の言語の任意のアプリケーションとの間でオブジェクトを共有する一般的な方法__index()は、__newindex().userdata

誰かがここで説明されていることを行う方法を説明するか、オブジェクトを公開する別の方法を説明して、基本的に次のようなことを行うことができます:

0 投票する
1 に答える
245 参照

java - Javaクラス内でLuaj関数のパラメータ名を取得するには?

.lua ファイルで定義されているすべての関数パラメーターの数と名前を取得する方法はありますか?

たとえば、私のtest1.luaは

Java クラス内では、パラメーター値を渡してこの関数を実行しようとしています。

この Lua 関数が他のユーザーによって作成され、フォルダーに保存され、Java アプリケーションがこの Lua ファイルをその中にある関数を知らずにロードした場合。関数の名前(「MyAdd」)、この関数への入力パラメータの数、およびJava内のこれらの入力パラメータの名前(num1、num2、およびnum3)を取得するにはどうすればよいですか

関数の名前と入力パラメーターの数と順序がわかっている場合は、次のように関数を呼び出すことができます。

私が何を達成しようとしているのかを明確にしていただければ幸いです。どんな助けでも大歓迎です。

0 投票する
1 に答える
137 参照

java - LuaJ一時停止を実装するにはどうすればよいですか?

ゲームエンジンを開発していて、ゲームで lua ファイルを処理したい。

現在、ゲームが実行できるリストに各コマンドを格納するために作成したカスタム スクリプト言語を使用しています。私のスクリプト言語は現時点では非常に原始的です。そのため、Lua に切り替えたいのですが、どうすればよいかわかりません。

これが私がやろうとしていることの例です:

0 投票する
0 に答える
155 参照

java - LuaJ: オブジェクト参照を lua コードに渡す

私は現在、Java が Lua コードを解釈して実行できるようにするライブラリである LuaJ を使用したプロジェクトに取り組んでいます。これまでに収集したものから、プリミティブ、テーブル、ユーザーデータなど、Lua 自体が理解できる値のみを渡すことができます。

私が見つけられないのは、たとえば、オブジェクト参照を引数として渡すことによって、Lua で定義された関数を呼び出す方法です。

そして、これは理にかなっています。Lua は Java オブジェクト参照を理解できません。それで十分です。

私が思いついた解決策は、本質的に仮想メモリ マネージャーを作成することでした。私が思い付くことができる最も単純な実装では、それは本質的にMap<Integer,Object>. Integer ビットは Lua スクリプトで使用されdoSomethingWithObject(object)ます。たとえば、 object は実際にはマップの Integer キーの LuaValue です。

gets が呼び出されると (これdoSomethingWithObject(object)は から拡張された Java で定義された関数ですOneArgFunction)、 にフックしMap<Integer,Object>、整数値で表されるオブジェクトをフェッチし、そのオブジェクトに対して必要なことを行う必要があります。

これには匂いがあります。これを行うためのより良い方法があるかどうかはわかりません。もしあれば、私が手に入れることができる情報を読んでみたいと思います.