2
호출 Java 코드에 여러 값을 반환하도록 Java에 포함 된 일부 Javascript 코드를 수정하려고합니다. (자바 스크립트로 호출을)Rhino에서 Java 호출 클래스로 여러 값 반환
자바 코드 (자바에 의해 호출)
...
Object result = execFunc.call(context, scope, scope, execArgs);
return ScriptRuntime.toString(result);
자바 스크립트 코드 :
...
return "string";
는 여러 개의 값을 반환 기대하고있다.
내가 지금처럼의 HashMap를 반환하는 자바 스크립트를 수정 시도했다 :
...
var res = new java.util.HashMap();
res.put("String", "string");
res.put("Integer", 1);
return res;
그러나 나는 자바 측에서 캐스팅 할 때 나는 ClassCastException이 얻을 :에
...
HashMap result = (HashMap) execFunc.call(context, scope, scope, execArgs);
return ScriptRuntime.toString(result);
결과 :
java.lang.ClassCastException: org.mozilla.javascript.NativeJavaObject cannot be cast to java.util.HashMap
나는 HashMap에서 그것을 반환하지 않습니다. 반환하려는 값은 String 및 Integer입니다. 이상하게도 튜플이나 HashMap을 반환하려고하지만 배열에 두 개의 문자열을 반환하고 Integer를 구문 분석하면됩니다.
여러 값을 반환하기위한 지침은 크게 감사하겠습니다.
대신 자바 측에서 채울 수있는 자바 객체를 주입해야합니까?