假设我写了这样的代码:
public class SomeClass() {
public static void main(String[] args) {
MVEL.eval("boolean boolVar = 2<3;");
}
}
现在可以在任何地方访问Java代码中的这个boolVar变量。 示例:我可以使用
打印boolVar的值System.out.print(boolVar);
在MVEL线下方的主要方法中。
答案 0 :(得分:2)
请记住,如上所述,boolean boolVar
成为局部变量,而MVEL
也无法编译它。
1。)需要传递类对象。
2。)在课堂上创建boolean
属性,然后分配给它。
要评估的表达式:MVEL.eval("obj.output = 2<3;", map);
请尝试以下代码: -
import java.util.HashMap;
import java.util.Map;
import org.mvel2.MVEL;
public class SomeClass {
private boolean output;
public boolean isOutput() {
return output;
}
public void setOutput(boolean output) {
this.output = output;
}
public static void main(String[] args) {
SomeClass myObj = new SomeClass();
Map<String, Object> map = new HashMap<String, Object>();
map.put("obj", myObj);
MVEL.eval("obj.output = 2<3;", map);
System.out.println(myObj.isOutput());
MVEL.eval("obj.output = 2>3;", map);
System.out.println(myObj.isOutput());
}
}
<强>输出强>
true
false