是一种给java用的表达式计算工具。可以把我们写的一些表达式交个MVEL得到我们想要的结果。
@Data
public class Person {
private String name;
}
import org.mvel2.MVEL;
public class Test {
public static void main(String[] args) {
Person personInst = new Person();
personInst.setName("test");
// 取值
String strResult = (String) MVEL.eval("name", personInst);
System.out.println("strResult=" + strResult); // 结果:strResult=Mr.Foo
}
}
@Data
public class Test {
private int a = 3;
private int b = 4;
}
public class TestMain {
public static void main(String[] args) {
Test t = new Test();
// 第一种方式
Integer intResult = (Integer) MVEL.eval("a * b", t);
System.out.println("intResult=" + intResult); // intResult=12
// 第二种方式
ExecutableAccessor compiled = (ExecutableAccessor) MVEL.compileExpression("a * b");
intResult = (Integer) MVEL.executeExpression(compiled, t);
System.out.println("intResult=" + intResult); // intResult=12
// 判断相等
Object objResult = MVEL.eval("a == 3", t);
System.out.println("objResult=" + objResult); // objResult=true
}
}