spring3.0学习笔记(3)---SpEL表达式2
- 例一:使用符号
- //evaluates to true
- boolean trueValue=parser.parseExpression("2==2").getValue(Boolean.class);
- //evaluates to false
- boolean falseValue=parser.parseExpression("2<-5.0").getValue(Boolean.class);
- //evaluates to true
- boolean trueValue=parser.parseExpression("'black'<'block'").getValue(Boolean.class); //字符串的比较
- 例二:判断是否是类中的一个实例
- //evaluates to false
- boolean falseValue=parser.parseExpression("'xyz' instanceofT(int)").getValue(Boolean.class);
- 例三:和正则表达式结合
- //evaluates to true
- boolean trueValue = parser.parseExpression("'5.00'matches'^-?\\d+\\.\\d{2})?$'").getValue(Boolean.class);
- //evaluates to false
- boolean falseValue = parser.parseExpression("'5.0067'matches'^-?\\d+(\\.\\d{2})?$'").getValue(Boolean.class);
- 例四:逻辑运算符
- //--AND--
- //evaluates to false
- boolean falseValue=parser.parseExpression("true and false").getValue(Boolean.class);//取后者
- //evaluates to true
- String expression= "isMember('NikolaTesla') and isMember('MihajloPupin')";
- boolean trueValue=parser.parseExpression(expression).getValue(societyContext,Boolean.class);
- //--OR--
- //evaluates to true
- boolean trueValue=parser.parseExpression("true or false").getValue(Boolean.class);
- //evaluates to true
- String expression= "isMember('Nikola Tesla') or isMember('Albert Einstien')";
- boolean trueValue=parser.parseExpression(expression).getValue(societyContext,Boolean.class);
- //--NOT--
- //evaluates to false
- boolean falseValue=parser.parseExpression(" !true").getValue(Boolean.class);
- //--AND and NOT--
- String expression= "isMember('NikolaTesla') and !isMember('MihajloPupin')";
- boolean falseValue=parser.parseExpression(expression).getValue(societyContext,Boolean.class);
- 例五:算术运算符
- //Addition
- int two=parser.parseExpression("1+1").getValue(Integer.class); //2
- String testString=parser.parseExpression(" 'test'+'string' ").getValue(String.class); //'teststring'
- //Subtraction
- int four=parser.parseExpression("1-3").getValue(Integer.class); //4
- double d=parser.parseExpression("1000.00-1e4").getValue(Double.class); //-9000
- //Multiplication
- int six=parser.parseExpression("-2*-3").getValue(Integer.class); //6
- double twentyFour=parser.parseExpression("2.0*3e0*4").getValue(Double.class); //24.0
- //Division
- int minusTwo=parser.parseExpression("6/-3").getValue(Integer.class); //-2
- double one=parser.parseExpression("8.0/4e0/2").getValue(Double.class); //1.0
- //Modulus
- int three=parser.parseExpression("7%4").getValue(Integer.class); //3
- int one=parser.parseExpression("8/5%2").getValue(Integer.class); //1
- //Operator precedence
- int minusTwentyOne=parser.parseExpression("1+2-3*8").getValue(Integer.class); //-21
关注微信公众号福利!!!
回复关键字「666」获取一份最新 Java 架构资料,你要的都有!
回复关键字「Java」获取JVM, 多线程等Java技术系列教程;
回复关键字「spring」获取Spring, Spring Boot, Spring Cloud教程;
回复关键字「架构」获取分布式、微服务、架构、高并发等系列干货;
回复关键字「面试」获取各种 Java 面试题及答案、面试实战经验;
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步