You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
951 B

  1. local luaj = {}
  2. if LuaJavaBridge then
  3. local callJavaStaticMethod = LuaJavaBridge.callStaticMethod
  4. local function checkArguments(args, sig)
  5. if type(args) ~= "table" then args = {} end
  6. if sig then return args, sig end
  7. sig = {"("}
  8. for i, v in ipairs(args) do
  9. local t = type(v)
  10. if t == "number" then
  11. sig[#sig + 1] = "F"
  12. elseif t == "boolean" then
  13. sig[#sig + 1] = "Z"
  14. elseif t == "function" then
  15. sig[#sig + 1] = "I"
  16. else
  17. sig[#sig + 1] = "Ljava/lang/String;"
  18. end
  19. end
  20. sig[#sig + 1] = ")V"
  21. return args, table.concat(sig)
  22. end
  23. function luaj.callStaticMethod(className, methodName, args, sig)
  24. local args, sig = checkArguments(args, sig)
  25. --echoInfo("luaj.callStaticMethod(\"%s\",\n\t\"%s\",\n\targs,\n\t\"%s\"", className, methodName, sig)
  26. return callJavaStaticMethod(className, methodName, args, sig)
  27. end
  28. end
  29. return luaj