0

我正在为我的 Java 应用程序使用 Mozilla Rhino(JavaScript 引擎)。我像这样定义了一个 ScriptableObject:

public class TheObj extends ScriptableObject {
public TheObj(){
    //nothing
}
public TheObj(Scriptable scope, Scriptable prototype) {
    super(scope, prototype);
}

@Override
public String getClassName() {
    return "Foo";
}
@JSStaticFunction
public static Foo foo(Foo foo){
    return foo;
}

}

Foo 类是:

public class Foo {
  public void bar(){
    System.out.println("it works");
  }
}

但是当我尝试Scriptable 从ScriptableObject.defineClass(scope, TheObj.class);哪里开始时,它会抛出scopeContext.enter().initStandardObjects();

org.mozilla.javascript.EvaluatorException: Unsupported parameter type "Foo" in method "bar".

我能做些什么来解决这个问题?

4

1 回答 1

0

我想到了。我刚用Context.jsToJava(Object, Class<?>);

(其实函数 foo() 需要像 Java 一样使用 Foo 参数,而不仅仅是返回)

于 2012-08-28T19:59:19.797 回答