天天看点

JAVA-MVEL2.0表达式MVEL是什么基本语法

MVEL是什么

是一种给java用的表达式计算工具。可以把我们写的一些表达式交个MVEL得到我们想要的结果。

基本语法

1.取值

@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
    }   
} 
           

2.属性计算

@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
	}
}