您的位置:首页 > 编程语言 > Lua

luajava数值和对象传递的一个例子

2015-02-14 14:46 232 查看
转自:http://univasity.iteye.com/blog/493339

http://hi.baidu.com/lff0305/blog/item/fd666931da276111eac4af45.html )

-----------------------------------------

-- test01.lua

Lua代码


function sum(a, b)

return a+b

end

function test1(v)

v:init()

end

/////////////////////////////////////////////////////
// Test01.java

Java代码


public class Test01 {

/**

* @param args

*/

public static void main(String[] args) {

LuaState L = LuaStateFactory.newLuaState();

// 加载lua标准库,否则一些lua基本函数无法使用

L.openLibs();

// doFile

L.LdoFile("res/test01.lua");

//---------------------------------------------值传递测试

// 找到函数 sum

L.getField(LuaState.LUA_GLOBALSINDEX, "sum");

// 参数1压栈

L.pushNumber(100);

// 参数2压栈

L.pushNumber(50);

// 调用,共2个参数1个返回值

L.call(2, 1);

// 保存返回值到result中

L.setField(LuaState.LUA_GLOBALSINDEX, "result");

// 读入result

LuaObject lobj = L.getLuaObject("result");

// 打印结果

System.out.println(lobj.getNumber());

//---------------------------------------------对象传递测试

Value v = new Value();

L.getField(LuaState.LUA_GLOBALSINDEX, "test1");

try {

L.pushObjectValue(v);

} catch (LuaException e) {

e.printStackTrace();

}

L.call(1, 0);

v.print();

}

}

class Value {

private int i;

public void init(){

i = 111;

}

public void print(){

System.out.println(i);

}

}

luaInJava.rar (116.1 KB)
描述: 部分例子源代码
下载次数: 236
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐