java - 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);
  }
}

在 java 中,实现监听器是通过匿名子类完成的:

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

如果我尝试在 JavaScript 中这样做,我不能同时调用抽象基类的构造函数和实现虚函数。

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

最佳答案

也许这有帮助:

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

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

关于java - Rhino 中抽象类的匿名实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157325/

相关文章:

javascript - 在表格中选中复选框时显示相应的文本框

javascript - Backbone Marionette : Marionette. 应用程序导致 Require.js 模块加载错误, "' 错误:模块名称 'App' 尚未加载上下文:_”

java - 如何在 Spring Cloud Contract stub 上执行 WireMock.verify() 操作?

javascript - 当相关帖子未托管在 Blogger 上时,获取博客帖子的第一个图片 url

linux - 命令在脚本中不起作用,但在 shell 中有效

linux - 算术表达式 : expecting EOF: "008 +1"

sql - F# 从 CSV 生成 SQL

java - 短条件,java

java - 如何使用 Jackson 将 Object 类发送到服务器?

java - 使用 java 的 RSS 阅读器和解析器