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()は、Fooパラメーターを返すだけでなくJavaとして使用する必要がありました)

于 2012-08-28T19:59:19.797 に答える