是否可以使用 MVEL 定义一些自定义预编译函数并在另一个编译表达式中使用一个?如果我尝试以下操作:
MVEL.compileExpression("function hello() { System.out.println(\"Hello!\"); hello(); return x * y;");
我Exception in thread "main" [Error: duplicate function: hello]
第二次尝试执行它时得到。
看起来我不应该在表达式本身,而是在某种上下文中声明函数。我用 ParsedContext 玩了一段时间,但总是得到Exception in thread "main" [Error: unable to access property (null parent): hello]
.
Internet 上充满了涵盖不同 MVEL 语言使用主题的教程,但此类嵌入主题的文档记录非常差。你能给我一些线索我做错了什么吗?
PS我不想从Java执行某些功能。我需要用 MVEL 动态定义它们。