使用 BeanShell 在方法内执行脚本
题
我不太确定如何解释这一点,但这里是:
我希望能够将一些命令“插入”到将从外部文件加载的代码部分中。为了解析和执行这些命令,我可能必须使用一些脚本,例如 BeanShell 的 eval 方法。问题是它似乎无法识别它所在的实例/方法。作为一个非常基本的例子,我想做一些类似的事情
public void somethingHappens()
{
Foo foo = new Foo();
Interpreter i = new Interpreter();
i.eval("print(foo.getName());");
}
这可能吗?我应该使用其他脚本工具吗?
解决方案
其他提示
使用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