Попробуйте использовать L.pushNumber
вместо L.pushJavaObject
следующим образом:
L.getGlobal("foo");
L.pushNumber(8.0);
int retCode = L.pcall(1,1,0);
String errstr = L.toString(-1);
Lua, вероятно, рассматривает JavaObject как тип 'userdata', и в этом случае для него нет предопределенных операций;Lua не будет знать, что делать с JavaObject * 2
, поскольку вы не определили, как с ним обращаться.
OTOH, Lua действительно знает, как обращаться с числом, поскольку это встроенный примитивный тип.Для представленного вами фрагмента кода нажатие числа было бы наименее болезненным способом заставить его работать вместо написания дополнительного кода, который сообщает Lua, как работать с числами, заключенными в JavaObject.