根据MVEL的文档,可以在脚本中导入静态Java方法:http://mvel.codehaus.org/Programmatic+Imports+for+2.0。以下示例是从该页面上获取的,但是没有用(我收到一个错误:无法访问属性(父级为空):时间)。有什么事吗
import java.io.Serializable;
import org.mvel2.MVEL;
import org.mvel2.ParserContext;
public class Test {
public static void main(String[] args) {
ParserContext ctx = new ParserContext();
try {
ctx.addImport("time", System.class.getMethod("currentTimeMillis", long.class));
}
catch (NoSuchMethodException e) {
// handle exception here.
}
Serializable s = MVEL.compileExpression("time();", ctx);
Object ans = MVEL.executeExpression(s);
System.out.println(ans.toString());
}
}
最佳答案
getMethod的第二个参数用于参数类型,而不用于方法的返回类型。
更改此行:
System.class.getMethod("currentTimeMillis", long.class)
有了这个:
System.class.getMethod("currentTimeMillis")
关于java - 无法使用MVEL导入静态方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4349519/