Java Rhino中抽象类的匿名实现
我需要通过现有抽象基类的匿名子类在JavaScript中实现侦听器,定义如下:Java Rhino中抽象类的匿名实现,java,javascript,scripting,abstract-class,rhino,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);
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(),将方法实现作为参数,就会创建我需要的子类的实例。但是我实际上需要调用构造函数,同时调用构造函数参数和方法实现
它是关于实现接口的,但可能是适用的。我不清楚您是如何尝试将Javascript引入这个问题的。你能提供一个你尝试过但没有成功的例子吗?我有一个用Java编写的脚本应用程序。我可以使用JS控制台进行一些操作(通过调用应用程序类的方法)。我想写一个脚本来处理这个应用程序的一些事件,但要做到这一点,我需要实现一个侦听器。不起作用的地方:我无法在Rhino:JS控制台中编写“x=Speaker.MyListener(“George”,函数(单词){sleep();})”获取InvocationTargetException并退出。