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); |