03.MVEL基本语法-布尔表达式

时间:2023-01-09 18:18:33
MVEL可以用来表达一个布尔表达式,比如user.name=='zhangsan'  ,a<100  。 MVEL的布尔表达式和JAVA一样有优先级,包括通过括号来控制执行顺序。
MVEL布尔表达式的操作符如下:
操作符 说明 示例
== 比较两个值是否相等
与java的字符串内存地址比较不一样
‘foo’=='foo'  
!= 不相等  
> 大于  
< 小于  
>=    
<=    
contains 包含。如果左边的字符串包含右边的字符串内容,返回true  
is/instanceof 实例类型检查,如果实例类型是右边的类型,返回true a = new Integer(1)
a is Integer
a instanceof Integer
返回true
strsim 字符相似性。
这个返回的数据,越相似值越接近1
"foo" strsim "foo"
返回1
sounds 读音相似性,相似的话返回true ‘foobar’ soundslike ‘fubar’
~= 正则表达式测试 foo~='[a-z].+'
     
以下通过几个例子示范布尔表达式      
大于
Map m = new HashMap();m.put("a", 100);Boolean obj = (Boolean) MVEL. eval("a>100", m);if(obj){         System. out.println("a大于100" );} else{         System. out.println("a小于100" );}

读音相似性
String composite = "'foobar' soundslike 'fubar'";Object obj = MVEL. eval(composite);System. out.println(obj);