이 프로젝트에서 Rhino 과 함께 javax.scripting을 사용하고 있습니다.Rhino Javascript : Object를 Javascript 프리미티브로 변환하는 방법은 무엇입니까?
Java 개체 (Double, Long, 정수 등)를 반환하는 Java 메서드가 있습니다. 그 메소드를 자바 스크립트에서 호출하고 자바 스크립트 프리미티브 유형으로 결과를 참조하고 싶습니다. 그러나 javacript는 반환 유형을 Object로 인식합니다.
어떻게 자바 스크립트 프리미티브로 변환합니까?
이 질문은 내가 컨텍스트와 WrapFactory에 대한 참조를 어떻게받을 수 있나요되어 http://groups.google.com/group/mozilla.dev.tech.js-engine.rhino/browse_thread/thread/2f3d43bb49d5288a/dde79e1aa72e1301
그의 문제와 매우 유사하다?
샘플 코드 :
public class data
{
Double value = 1.0d;
public Number get() { return value; }
}
public static void main(String[] args)
{
ScriptEngine engine = new ScriptEngineManager().getEngineByName ("rhino");
data data = new data();
try
{
engine.eval("function test(data) { return data.getD('value1') + 5;};");
System.out.println("Result:" + ((Invocable)engine).invokeFunction("test", data));
}
catch (Exception e)
{
e.printStackTrace();
}
}
출력 : 결과 : 15
이렇게하면 NullPointerException이 발생합니다. 컨텍스트.getCurrentContext()가 null입니다. – Tazzy531
올바른 구현을 제공하도록 편집되었습니다. – Kevin
효과가 없습니다. 아직도 얻을 : 결과 : 15 – Tazzy531