Beanshell을 사용하여 내부 메소드를 실행합니다
문제
나는 이것을 어떻게 설명 할 수 있는지 잘 모르겠지만 여기에 간다 :
외부 파일에서로드 될 코드의 일부에 일부 명령을 "삽입"할 수 있기를 원합니다. 이 명령을 구문 분석하고 실행하려면 BeanShell의 Eval Method와 같은 스크립팅을 사용해야합니다. 문제는 인스턴스/메소드가 내부에있는 인스턴스를 인식하지 않는 것 같습니다. 매우 기본적인 예로서, 나는
public void somethingHappens()
{
Foo foo = new Foo();
Interpreter i = new Interpreter();
i.eval("print(foo.getName());");
}
이게 가능해? 다른 스크립팅 도구를 사용해야합니까?
해결책
1.6을 사용하는 경우 내장 된 JavaScript 지원을 사용할 수 있습니다.
그만큼 Java 스크립팅 프로그래머 가이드 Java 클래스를 스크립트로 가져 오는 방법을 설명합니다.
코드 예제 9 기사 객체를 스크립트의 범위에 전달하는 방법을 설명합니다.
다른 팁
Beanshell을 사용하면 시도해 볼 수있는 것입니다
package beanshell;
import bsh.EvalError;
import bsh.Interpreter;
public class DemoExample {
public static void main( String [] args ) throws EvalError {
Interpreter i = new bsh.Interpreter();
String usrIp = "if(\"abc\".equals(\"abc\")){"
+ "demoExmp.printValue(\"Rohit\");"
+ "}";
i.eval(""
+ "import beanshell.DemoExample;"
+ "DemoExample demoExmp = new beanshell.DemoExample();"
+ ""+usrIp);
}
public static void printValue(String strVal){
System.out.println("Printing Value "+strVal);
}
}
제휴하지 않습니다 StackOverflow