我正在使用javax.script.*
Rhino 在 Java 程序中编写脚本。
一个脚本可以很好地实现一个接口,但是当我尝试使用类似的语法来实例化一个抽象类(给出未实现方法的定义)时,我收到一个错误,说MyTestAbstractClass
(我试图实例化的类)是一个接口或抽象的。我做错了什么吗?
这是我正在使用的 Javascript 代码:
var testObject = new foo.mytestpackage.TestAbstractClass() {
printMessage: function() {
print("foo");
}
};
何时TestAbstractClass
是具有普通构造函数(无参数)的类,我得到以下堆栈跟踪:
javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: error instantiating (JavaAdapter: first arg should be interface Class (<Unknown source>#1)): class com.merkle.TestObject is interface or abstract (<Unknown source>#1) in <Unknown source> at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at com.sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
at javax.script.AbstractScriptEngine.eval(Unknown Source)
我正在使用 Sun 的(我听说过稍微简化了)Rhino 实现,并且使用官方的 Rhino jars 是我想避免的,因为它们非常大。