2011-10-24 36 views
1

我有一个接口,EventHandler(OSGi EventAdmin),带有一个方法handleEvent(Event)。如何获得JavaScript实现的接口的哈希码

我有以下的Javascript代码:

importPackage(org.osgi.service.event) 

obj = 
{ 
    handleEvent: function(event) 
    { 
     // some code 
    } 
}; 

handler = new EventHandler(obj); 

service.registerHandler(handler, topic); 

代码由犀牛(更具体地说犀牛作​​为内置到JRE6,JSR-223规范)执行。 service是绑定到脚本上下文的Java对象,其中registerHandler首先在Map中查找处理程序。这会失败,因为NativeObject“处理程序” 没有hashCode()方法。

NativeObject是否缺少标准Java对象方法的原因?

解决此问题的方法是什么?

我正在使用JRE6(1.6R2)附带的Rhino。

回答

0

您的代码不完整,但NativeObject看起来更像是JavaScript反对我。

+0

我更新了代码,只丢失了导入语句。据我所知,'code'NativeObject是Java对象的Javascript表示。 EventHandler是一个接口,所以创建的对象是一个特殊的对象。有没有办法创建一个Java对象呢? –