엘비스 연산자는 삼항 연산자 신택스를 더 짧게한 것이고 그루비 언어로 사용된다. 삼항 연산 신택스와 보통 변수를 두번 반복해야만 한다.
String name = "Elvis Presley";
String displayName = (name != null ? name : "Unknown");
대신에, 엘비스 연산자(엘비스 헤어스타일에서 네이밍 한)를 사용한다. 아래는 어떻게 엘비스 연산자를 사용하는지 보여준다.
ExpressionParser parser = new SpelExpressionParser();
String name = parser.parseExpression("name?:'Unknown'").getValue(String.class);
System.out.println(name); // 'Unknown'
아래는 더 복잡한 예제다.
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(null);
name = parser.parseExpression("Name?:'Elvis Presley'").getValue(context, tesla, String.class);
System.out.println(name); // Elvis Presley
표현식에 기본 값을 적용하기 위해 엘비스 연산자를 사용할 수 있다. 아래는 어떻게 엘비스연산자로 @Value 를 사용하는지 나타낸다.
이는 만약 정의되어있거나 25가 아닌 경우에 pop3.port 시스템 프로퍼티를 주입한다.