luaj-lua中实例化JavaClass

来源:互联网 发布:机械设计手册软件 编辑:程序博客网 时间:2024/05/12 03:05

LuaJ提供了LuaJavaLib来方便地实现Lua和Java的混用。

使用luajava在Lua中实例化JavaClass

LuaLogTest.java一个简单的Log示例类

package com.mislead.luaj.java_lua;public class LuaLogTest {  public static String TAG = LuaLogTest.class.getSimpleName();  public static void staticInfo(String msg) {    System.out.println(String.format("static info: %s", msg));  }  public void info(String msg) {    System.out.println(msg);  }  public void error(String msg) {    System.err.println(msg);  }}

test.lua

-- use luajava.newInstace to instace a java classlocal luaLog = luajava.newInstance("com.mislead.luaj.java_lua.LuaLogTest")-- use java class methodsluaLog:info("this is info")luaLog:error("this is error")-- use luajava.bindClass to bind a class to lua-- then use luajava.new to instance itlocal LuaLog = luajava.bindClass("com.mislead.luaj.java_lua.LuaLogTest")-- use static java class method & fieldLuaLog:staticInfo("info")print(LuaLog.TAG)-- instance classlocal newLog = luajava.new(LuaLog)-- use java class methodnewLog:info("this is newLog info")-- a JFrame examplelocal jframe = luajava.bindClass("javax.swing.JFrame")local frame = luajava.newInstance("javax.swing.JFrame", "this is text")frame:setDefaultCloseOperation(jframe.EXIT_ON_CLOSE)frame:setSize(300, 400)frame:setVisible(true)

在Java中使用luajava示例

Globals globals = JsePlatform.debugGlobals();String currentTime = globals.get("luajava")    .get("bindClass")    .call(LuaValue.valueOf("java.lang.System"))    .invokemethod("currentTimeMillis").toString();System.out.println(currentTime);
0 0
原创粉丝点击