我有一个接口,EventHandler (OSGi EventAdmin),具有单个方法handleEvent(Event)。
我有以下Javascript代码:
importPackage(org.osgi.service.event)
obj =
{
handleEvent: function(event)
{
// some code
}
};
handler = new EventHandler(obj);
service.registerHandler(handler, topic);
代码由Rhino执行(更具体地说,Rhino内置在JRE6, JSR-223规范中)。service是绑定到脚本上下文的Java对象,其中registerHandler首先在Map中查找处理程序。失败的原因是NativeObject "handler"没有hashCode()方法
是否有一个原因,一个NativeObject是缺少标准Java对象方法?
解决这个问题的方法是什么?
我使用的是JRE6 (1.6R2)自带的Rhino。
你的代码不完整,但NativeObject
看起来更像是一个JavaScript对象。