Rhino中抽象类的匿名实现

时间:2010-07-01 11:34:58

标签: java javascript scripting abstract-class rhino

我需要通过现有抽象基类的匿名子类在JavaScript中实现一个侦听器,定义如下:

public class Speaker {
  public static abstract class MyListener {
    private String name;
    public MyListener(final String name) { this.name = name; }
    public abstract boolean listen(final String words);
  }
}

在java中,使用匿名子类实现侦听器:

MyListener newListener = new MyListener("George") {
  public boolean listen(final String words) throws Exception { Thread.sleep(500); }
}

如果我尝试在JavaScript中执行此操作,则无法调用抽象基类的构造函数并同时实现虚函数。

如果我删除构造函数参数,然后使用方法实现作为参数调用MyListener(),则会生成我需要的子类的实例。但实际上我需要使用两者构造函数参数来调用构造函数。

1 个答案:

答案 0 :(得分:2)

也许这会有所帮助:

http://download.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html#jsimplement

它是关于实现接口,但可能适用。