1
1
[[expressions-operator-elvis]]
2
2
= The Elvis Operator
3
3
4
- The Elvis operator is a shortening of the ternary operator syntax and is used in the
5
- https://www.groovy-lang.org/operators.html#_elvis_operator[Groovy] language. With the
6
- ternary operator syntax, you often have to repeat a variable twice, as the following
7
- Java example shows:
4
+ The Elvis operator (`?:`) is a shortening of the ternary operator syntax and is used in
5
+ the https://www.groovy-lang.org/operators.html#_elvis_operator[Groovy] language. With the
6
+ ternary operator syntax, you often have to repeat a variable twice, as the following Java
7
+ example shows:
8
8
9
9
[source,java,indent=0,subs="verbatim,quotes"]
10
10
----
23
23
----
24
24
ExpressionParser parser = new SpelExpressionParser();
25
25
26
- String name = parser.parseExpression("name?: 'Unknown'").getValue(new Inventor(), String.class);
26
+ String name = parser.parseExpression("name ?: 'Unknown'").getValue(new Inventor(), String.class);
27
27
System.out.println(name); // 'Unknown'
28
28
----
29
29
@@ -33,7 +33,7 @@ Kotlin::
33
33
----
34
34
val parser = SpelExpressionParser()
35
35
36
- val name = parser.parseExpression("name?: 'Unknown'").getValue(Inventor(), String::class.java)
36
+ val name = parser.parseExpression("name ?: 'Unknown'").getValue(Inventor(), String::class.java)
37
37
println(name) // 'Unknown'
38
38
----
39
39
======
@@ -58,11 +58,11 @@ Java::
58
58
EvaluationContext context = SimpleEvaluationContext.forReadOnlyDataBinding().build();
59
59
60
60
Inventor tesla = new Inventor("Nikola Tesla", "Serbian");
61
- String name = parser.parseExpression("name?: 'Elvis Presley'").getValue(context, tesla, String.class);
61
+ String name = parser.parseExpression("name ?: 'Elvis Presley'").getValue(context, tesla, String.class);
62
62
System.out.println(name); // Nikola Tesla
63
63
64
64
tesla.setName("");
65
- name = parser.parseExpression("name?: 'Elvis Presley'").getValue(context, tesla, String.class);
65
+ name = parser.parseExpression("name ?: 'Elvis Presley'").getValue(context, tesla, String.class);
66
66
System.out.println(name); // Elvis Presley
67
67
----
68
68
@@ -74,11 +74,11 @@ Kotlin::
74
74
val context = SimpleEvaluationContext.forReadOnlyDataBinding().build()
75
75
76
76
val tesla = Inventor("Nikola Tesla", "Serbian")
77
- var name = parser.parseExpression("name?: 'Elvis Presley'").getValue(context, tesla, String::class.java)
77
+ var name = parser.parseExpression("name ?: 'Elvis Presley'").getValue(context, tesla, String::class.java)
78
78
println(name) // Nikola Tesla
79
79
80
80
tesla.setName("")
81
- name = parser.parseExpression("name?: 'Elvis Presley'").getValue(context, tesla, String::class.java)
81
+ name = parser.parseExpression("name ?: 'Elvis Presley'").getValue(context, tesla, String::class.java)
82
82
println(name) // Elvis Presley
83
83
----
84
84
======
0 commit comments