Rhino学习笔记(二)---简单的使用

一、javascript中调用java的类库

js> Math = java.lang.Math
[JavaClass java.lang.Math]
js> function f(){print(Math.sin(Math.PI/2));}
js> f()
1

Rhino支持在javascript中使用java中所有的类库,包括用户自己定义的类库,不过需要事先将这些package或者class使用importPackage()引入到当前上下文中。

二、Java中使用javascript

1.javascript Function作为Java接口的实现类

要使用这一特性,必须声明一个具有和要实现的接口里面定义的方法同名的Object:
js> obj = { run: function () { print("\nrunning"); } }
[object Object]
js> obj.run()
js> r = new java.lang.Runnable(obj);
js> t = new java.lang.Thread(r)
js> t.start()

上面的代码中使用了一个javascript的Function作为java.lang.Runnable接口的实现类,实现了其中的public void run(){}方法,运行结果是running。

也可以直接将javascript的Function作为接口的实现类:

js> t = java.lang.Thread(function () { print("\nrunning"); });
Thread[Thread-0,5,main]
js> t.start()
js> 
running

这种写法更加简单。

2.javascript对象继承Java类

js> var obj2 = { speak: function() { print('Rhino rocks!') }}  
js> obj2.run = function() { this.speak() }  
js> var foo = new JavaAdapter(Thread, obj2)  
js> foo.start()  
Rhino rocks! 
使用JavaAdapter可以继承一个或多个Java类,
new JavaAdapter(javaIntfOrClass, [javaIntf, ..., javaIntf,] javascriptObject)

其中javaIntOrClass可以是Java接口或者普通的类。

参考:https://developer.mozilla.org/en-US/docs/Scripting_Java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值