字面量表达式
SpEL 支持以下类型的字面量表达式。
- 字符串
-
字符串可以由单引号 (
') 或双引号 (") 分隔。 要在由单引号包围的字符串字面量中包含单引号,请使用两个相邻的单引号字符。 同样,要在由双引号包围的字符串字面量中包含双引号,请使用两个相邻的双引号字符。 - 数字
-
数字支持使用负号、指数符号和小数点。
-
整数:
intorlong -
十六进制:
intorlong -
实数:
floatordouble-
默认情况下,实数使用
Double.parseDouble()解析。
-
-
- 布尔值
-
true或false - Null
-
null
|
由于 Infra 表达式语言的设计和实现,字面量数字在内部始终存储为正数。 例如, 这意味着不可能在 Java 中表示等于该类型数字最小值的负字面量数字。
例如,Java 中 如果你需要在 SpEL 表达式中使用特定类型数字的最小值,你可以引用相应包装类型的
|
以下清单显示了字面量的简单用法。通常,它们不会像这样单独使用,而是作为更复杂表达式的一部分使用—— 例如,作为逻辑比较运算符一侧的字面量或作为方法的参数。
-
Java
ExpressionParser parser = new SpelExpressionParser();
// 评估结果为 "Hello World"
String helloWorld = (String) parser.parseExpression("'Hello World'").getValue();
// 评估结果为 "Tony's Pizza"
String pizzaParlor = (String) parser.parseExpression("'Tony''s Pizza'").getValue();
double avogadrosNumber = (Double) parser.parseExpression("6.0221415E+23").getValue();
// 评估结果为 2147483647
int maxValue = (Integer) parser.parseExpression("0x7FFFFFFF").getValue();
boolean trueValue = (Boolean) parser.parseExpression("true").getValue();
Object nullValue = parser.parseExpression("null").getValue();