与一个陌生人的聊天记录

623708547 13:06:45

美女你好呀!
623708547 13:06:45
还在吗!

叶子的回忆 13:01:28
呵呵,你好,过奖了
 
★剑侠王子★ 13:07:12
吃了午饭了吗!美女
★剑侠王子★ 13:07:18
不用的!
★剑侠王子★ 13:07:22
应该的!
叶子的回忆 13:02:00
吃了,你是?
 
叶子的回忆 13:02:10
你认识我吗?
 
★剑侠王子★ 13:07:37
你可能不认识我
叶子的回忆 13:02:21
我问你认识我吗
 
★剑侠王子★ 13:07:59
我不认识你!
★剑侠王子★ 13:08:12
但是想认识你!可以吗!

叶子的回忆 13:02:51
当然
 
★剑侠王子★ 13:08:23
真的呀!
叶子的回忆 13:03:17
呵呵,没必要说假话
  好的!
★剑侠王子★ 13:09:02
其实我也很直接的!
叶子的回忆 13:03:45
 
 
★剑侠王子★ 13:09:16
 
★剑侠王子★ 13:09:27
那请问美女在那里读书呢!
★剑侠王子★ 13:09:37
我叫朱剑翔
叶子的回忆 13:04:27
呵呵,希望你不要这么称呼我
 
 
叶子的回忆 13:04:29
工作了
 
★剑侠王子★ 13:09:54
刚退伍回来!还在读书
★剑侠王子★ 13:09:59
噢!好的!
★剑侠王子★ 13:10:16
那还未请教芳名哦!
★剑侠王子★ 13:10:21
我22岁!
叶子的回忆 13:05:15
呵呵,我觉得没必要了
 
★剑侠王子★ 13:10:59
那好的!我尊重你的决定!

叶子的回忆 13:05:47
 
 
★剑侠王子★ 13:11:18
 
★剑侠王子★ 13:11:51
我呢!是真心想结交一位有诚意的女孩子做女朋友!
叶子的回忆 13:07:00
呵呵
 
★剑侠王子★ 13:13:12
但还是可以先了解一下的!
★剑侠王子★ 13:13:16
真的!

在网上吗
 
★剑侠王子★ 13:13:52
恩!可以的!~
叶子的回忆 13:08:46
我觉得还是现实一点好,网络必竟多少有些虚幻
 
★剑侠王子★ 13:14:33
说的很对!
叶子的回忆 13:09:14
呵呵
 
★剑侠王子★ 13:14:41
我也是这样想的!

叶子的回忆 13:09:23
 
 
★剑侠王子★ 13:14:54
 
★剑侠王子★ 13:15:16
和你直说吧,我还一直没有女朋友呢!
★剑侠王子★ 13:15:32
还望相信才是!
叶子的回忆 13:10:48
呵呵,没必要不信呀
 
★剑侠王子★ 13:16:18
现在工作辛苦吗!
叶子的回忆 13:11:03
不,很轻松
 
★剑侠王子★ 13:16:28
那太感谢你了
★剑侠王子★ 13:16:43
噢!那真的很好哦!
叶子的回忆 13:11:35
呵呵
 
★剑侠王子★ 13:17:04
那麽敢问你有朋友吗!
叶子的回忆 13:11:47
我朋友很多
 
叶子的回忆 13:11:55
因为我喜欢交朋友
 
★剑侠王子★ 13:17:33
是真的吗!我也是哦!

叶子的回忆 13:13:14
应该这样子,如果都像我们这样的话,世界就不会有仇恨了
 
★剑侠王子★ 13:19:26
哇!你的想法真的是很不一样哦!
★剑侠王子★ 13:19:59
想必你也是个很不一样的女孩子哦!
★剑侠王子★ 13:20:12
希望我说的是对的哦!
★剑侠王子★ 13:20:16
 
叶子的回忆 13:15:05
谢谢
 
叶子的回忆 13:15:17
任何人都一样,只是想法不一样而已
 
★剑侠王子★ 13:21:10
那我就更想和你交朋友喽!
叶子的回忆 13:15:57
我们现在已经是朋友了
 
★剑侠王子★ 13:21:46
也是啊!看我苯的!
★剑侠王子★ 13:21:48
哈哈!
叶子的回忆 13:16:32
没有
 
叶子的回忆 13:16:51
有时间看一下我的博客吧,增加一点点击率
 
★剑侠王子★ 13:22:27
噢!一定,一定
★剑侠王子★ 13:22:49
我可以看你吗!
叶子的回忆 13:17:30
在说假话了
 
★剑侠王子★ 13:23:10
啊!不是吧!
★剑侠王子★ 13:23:20
 
叶子的回忆 13:18:07
我博客是什么你知道吗?还没告诉你你就说一定一定,不是有点假吗
 
★剑侠王子★ 13:23:56
那我也是先尊重你哦!

叶子的回忆 13:18:39
呵呵
 
★剑侠王子★ 13:24:20
我一向是把尊重放在首位的!
★剑侠王子★ 13:24:25
尤其是女孩子!
★剑侠王子★ 13:25:13
说真的!你的资料上写的说明也很不一样的哦
叶子的回忆 13:19:59
谢谢
 
★剑侠王子★ 13:25:54
那想必一定是在等待着一份属于你自己的真感情喽!
叶子的回忆 13:20:44
已经有了
 
★剑侠王子★ 13:26:13
噢!

剑侠王子★ 13:26:29
那祝福你爱情甜蜜了!

叶子的回忆 13:21:52
你想错了,我朋友去外地了,离武汉很远,也许会过很久才会回,所以我不想接受现实,那只是一种幻想,一种希冀而已
 
★剑侠王子★ 13:27:37
噢!原来是这样的!
★剑侠王子★ 13:28:06
那我敢说你还是很需要一份自己身边的感情吧!
★剑侠王子★ 13:28:19
这样看来会比较真实一些!
★剑侠王子★ 13:29:02
其实我和你的想法都很一样的!
叶子的回忆 13:23:55
暂时的离开,并不能代表什么,人活在世上,悲欢离合是在正常不过的了
 
★剑侠王子★ 13:29:43
话语都很在理哦!
叶子的回忆 13:24:28
只是我个人的看法
 
★剑侠王子★ 13:30:29
但是这既是个人的看法,也很有道理的哦!
★剑侠王子★ 13:30:33
你说呢!
★剑侠王子★ 13:30:47
缘分是很重要的哦!

我呢就真的很相信缘分!
叶子的回忆 13:25:50
我从不相信
 
★剑侠王子★ 13:31:36
噢!是这样的!我了解了!
★剑侠王子★ 13:31:52
但是你现在对他还抱着希望吗!
★剑侠王子★ 13:32:08
我猜想已经没有了吧!
叶子的回忆 13:27:27
什么叫抱着希望,我们本来就很好,真正的爱情是不会因任何外界因素而改变的,否则就不叫爱情了。你以为爱一个人说变就能变的吗?
 
叶子的回忆 13:27:41
看来你还没有真正的爱过一个人
 
★剑侠王子★ 13:33:51
这一点你说对了!
★剑侠王子★ 13:34:15
但是很希望!可是觉得希望很渺小!
★剑侠王子★ 13:34:41
只好算了吧!
叶子的回忆 13:29:31
你又不是我,你怎么会知道了?我自己都没有这么觉得,你又为什么这么想呢
 
★剑侠王子★ 13:35:42
我是很相信自己的判断能力和感觉的!
叶子的回忆 13:30:37
呵呵
 
★剑侠王子★ 13:36:39
不好意思了!我下午还有课上!今天认识你我真的很高兴!那明天再聊吧!

叶子的回忆 13:31:29
 
 
★剑侠王子★ 13:36:55
希望你天天开心哦!
叶子的回忆 13:31:38
谢了
 
★剑侠王子★ 13:37:03
  喽!
★剑侠王子★ 13:37:27
其实你的那句话!已经给了我很大的信心!
★剑侠王子★ 13:37:30
谢谢你!

我会记住的!
叶子的回忆 13:32:20
什么呀
 
★剑侠王子★ 13:37:57
你又不是我,你怎么会知道了?我自己都没有这么觉得,你又为什么这么想呢 
★剑侠王子★ 13:38:05
就是这句哦!
叶子的回忆 13:33:00
不会吧,你蛮特别的哟,这句话怎么了
 
★剑侠王子★ 13:38:58
我呢一直都不相信自己对感情上抱着很大的信心和把握的!
★剑侠王子★ 13:39:10
对不起了!我得走了!
叶子的回忆 13:33:52
 
 
★剑侠王子★ 13:39:20
明天中午一定等你哦!
叶子的回忆 13:34:04
明天我要上班了
 
★剑侠王子★ 13:39:35
真是太对不起了!
叶子的回忆 13:34:12
下星期一吧
 
★剑侠王子★ 13:39:39
那好的!
★剑侠王子★ 13:39:47
我一定记住的!
叶子的回忆 13:34:33
88
 
★剑侠王子★ 13:40:03
祝你下午开心!
★剑侠王子★ 13:40:13
再见了!美女!
叶子的回忆 13:34:51
谢谢88
 
★剑侠王子★ 13:40:26
好的!
★剑侠王子★ 13:40:30


介绍当下多数在java下执行lua脚本的程序都是用了luajava。然而luajava存在一些严重的问题,它会将byte数组string等同对待,而且它的反射执行效率比较低。为了弥补这些问题,我参考luajava,重写了它的javajni代码,并以mLua为名重新发布。特点描述luajava类似的,mLua也有内置的全局lua函数;java对象lua对象可以通过jni层代码进行交换。但是mLua禁止lua直接操作java对象,如果想在lua中使用java对象,必须使用内置的全局函数实现。mLua区分byte数组string。在mLua中,java的byte数组对lua端而言,只是一个普通的userdata。在跨语言数据交换的时候,string是被复制的,因此当一个string从lua传递到java后再于lua中修改它,它在java端的对应版本并不会随着改变。将lua端的number传递给java后,会被优先解释为byte类型,否则将依照byte - short - int - long - float - double链条来尝试解释。mLua不对外暴露lua解析器实例,所有的操作都基于MLua实例完成。java端方法描述mLua的java端方法集中在MLua中:方法名称方法解释setBasedir(String)设置lua代码的最外层目录,所有lua代码都应该存放在这个目录或其子目录下pushGlobal(String, Object)设置全局lua的全局变量或函数,可以push普通的Object,或者JavaFunction。后者表示一个lua函数的java实现。只有在start方法执行前,设置的数据才会生效start(String)启动lua解析器,传递的参数表示lua代码的入口文件stop()停止lua解析器并释放资源除此之外,JavaFunction也是使用者可能需要用到的接口。它表示一个lua函数的java实现。其回调方法execute(Object[])方法会传入从lua端输入的数据,并输出一个结果传回lua端。如果方法本身不需要返回数据,则返回null即可。lua端函数描述在mLua下,lua原来的require、print函数已经被改写。requirerequire必须使用设置在java端的basedir为根目录的相对路径引用其他lua脚本:require "dir1/dir2/script1" require "script2"print支持输出一个或多个对象,但是不能将stringjava对象作拼接:-- 正确的做法 -- print("hello mLua") print("context: ", getContext()) print("string " .. 111) -- 错误的做法 -- print("context: " .. getContext())通过逗号分隔的对象会在java端以tab号分隔显示操作java对象mLua也采用反射来操作java对象,不过mobTools的ReflectHelper具备缓存功能,理论上会比luajava每次直接反射更快。mLua提供了如下的内置函数:函数名称函数解释import(className)向ReflectHelper类缓存中导入一个类,此函数将返回一个string,用于后续代码从缓存中重新获取导入的类实例import(name, className)向ReflectHelper类缓存中导入一个类,并将此缓存的key设置为指定名称new(className, ...)构造一个java实例,参数className是import函数的返回值,后续参数为java构造方法的输入参数invokeStatic(className, methodName, ...)调用一个java的静态方法invoke(receiver, methodName, ...)调用一个Java的实例方法getStatic(className, fieldName)获取一个java的静态字段setStatic(className, fieldName, value)设置一个java的静态字段get(receiver, fieldName)获取一个java的实例字段set(receiver, fieldName, value)设置一个java的实例字段createProxy(proxyTable, ...)构造一个java接口代理。参数proxyTable是一个lua的table,其中的key必须java接口类的方法名称相同,key对应的value是一个lua的function,function的参数列表返回值也必须java接口相同。proxyTable后的参数是被实现的接口列表名称,皆为string,由import函数返回。此函数将返回一个java接口代理实例,可将此实例传回java端并进行操作,当实例中的接口函数被调用时,mLua会调用proxyTable中的对应funtion代码完成操作例子java端代码public class MainActivity extends Activity {     private MLua lua;     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         // 构造一个解析器实例         lua = new MLua();         // 设置lua代码存放位置         lua.setBasedir("/sdcard/mLua/LuaTest");         // push全局对象         lua.pushGlobal("getContext", new JavaFunction() {             public Object execute(Object[] args) throws Throwable {                 return getApplication();             }         });         try {             // 启动解析器,设置main.lua为入口代码             lua.start("main");         } catch (Throwable e) {             e.printStackTrace();         }     }     protected void onDestroy() {         // 关闭解析器         lua.stop();         super.onDestroy();     } }lua端代码-- 导入ReflectHelper.ReflectRunnable类,并命名为ReflectRunnable -- import("ReflectRunnable", "com.mob.tools.utils.ReflectHelper$ReflectRunnable") local function main()   -- 演示printinvoke --   print("hello world from mLua")   local context = getContext()   print("current context: ", context)   local packageName = invoke(context, "getPackageName")   print("packageName: ", packageName)   -- 演示java接口代理 --   local luaCode = {     run = function(arg)       print("luaCode.run(), input: ", arg)       return "yoyoyo"     end   }   local proxy = createProxy(luaCode, "ReflectRunnable")   local res = invoke(proxy, "run", packageName)   print("luaCode.run(), output: ", res)   -- 演示数组复制 --   local bArray = new("[B", 16)   for i = 0, 15 do     set(bArray, "[" .. i .. "]", i   1)   end   local bArray2 = new("[B", get(bArray, "length"))   invokeStatic("System", "arraycopy", bArray, 0, bArray2, 0, 16)   for i = 0, 15 do     print("bArray2[" .. i .. "]: ", get(bArray2, "[" .. i .. "]"))   end end main()扩展mLua默认只能从文件系统中加载lua代码,但是如果对MLua的setBasedir方法进行重写,以其他的方式实现SourceLoader,则可以加载任意方式的lua代码,包括assets中的,加密的。 标签:mLua
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值