私は電話しようとしています:
LuaState.pcall(num_args,num_returns, error_handler_index).
この関数のエラー ハンドラを設定する方法を知る必要があります。実際、誰かが Lua 関数を呼び出し、LuaJava を使用して数値結果を取得する方法を示してくれたらいいと思います。これにより、多くの時間と質問を節約できます。エラー関数のシグネチャと、LuaState スタックの適切なポイントに配置する方法を探していますが、見つかりません。すべての Java->Lua の例は、戻りなしで値を出力しているか、Lua を使用して渡された Java オブジェクトに値を設定しています。Lua 関数を直接呼び出して結果を返す方法を知りたいです。
更新: 1 つの解決策は、LuaState.pcall(1,1,0) を使用してエラー ハンドラを渡さず、エラー ハンドラにゼロを渡すことです。
String errorStr;
L.getGlobal("foo");
L.pushNumber(8.0);
int retCode=L.pcall(1,1,0);
if (retCode!=0){
errorStr = L.toString(-1);
}
double finalResult = L.toNumber(-1);
calc.lua がロードされた場所:
function foo(n)
return n*2
end
エラーハンドラも設定する方法はありますか? ありがとう