Elvis 运算符
Elvis 运算符是三元运算符语法的缩写,用于 Groovy 语言中。 使用三元运算符语法时,通常需要重复一个变量两次,如下例所示:
String name = "Elvis Presley";
String displayName = (name != null ? name : "Unknown");
取而代之的是,你可以使用 Elvis 运算符(因其类似于 Elvis 的发型而得名)。 下例展示了如何使用 Elvis 运算符:
-
Java
ExpressionParser parser = new SpelExpressionParser();
String name = parser.parseExpression("name?:'Unknown'").getValue(new Inventor(), String.class);
System.out.println(name); // 'Unknown'
除了 null 对象外,SpEL Elvis 运算符还检查_空_字符串。
因此,原始片段只是接近模拟运算符的语义(它需要额外的 !name.isEmpty() 检查)。
|
以下清单显示了一个更复杂的示例:
-
Java
ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = SimpleEvaluationContext.forReadOnlyDataBinding().build();
Inventor tesla = new Inventor("Nikola Tesla", "Serbian");
String name = parser.parseExpression("name?:'Elvis Presley'").getValue(context, tesla, String.class);
System.out.println(name); // Nikola Tesla
tesla.setName("");
name = parser.parseExpression("name?:'Elvis Presley'").getValue(context, tesla, String.class);
System.out.println(name); // Elvis Presley
|
你可以使用 Elvis 运算符在表达式中应用默认值。下例展示了如何在
这将注入系统属性 |