我有一个如下所示的类,我想使用Javascript Rhino覆盖这两种方法,任何建议?
提前致谢!!
class MyClass() {
public void method1();
public void method2();
MyClass() {
method1();
method2();
}
}
答案 0 :(得分:2)
我最后一次使用它时,JDK捆绑的Rhino不支持扩展类(仅实现SAM接口),但Mozilla的Rhino确实支持覆盖类。查看JavaAdapter
:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Scripting_Java#The_JavaAdapter_Constructor
答案 1 :(得分:1)
虽然我没有在Android环境中尝试过这个,但Rhino确实支持JavaAdapter构造 - 如下所示:https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Scripting_Java#The_JavaAdapter_Constructor它允许您创建定义正确方法的JS对象,然后有效地创建单个超类和/或一个或多个接口之间的包装器。在这种情况下,例如:
var o = {
method1: function() {
print('method1');
},
method2: function() {
print('method2');
}
}
//This line should instantiate the child class, with
//method1 + method2 overridden called within the constructor
var instanceThatIsAMyClass = new JavaAdapter(com.example.MyClass, o);