4.3.14 엘비스 연산자 by ks

엘비스 연산자는 삼항 연산자 신택스를 더 짧게한 것이고 그루비 언어로 사용된다. 삼항 연산 신택스와 보통 변수를 두번 반복해야만 한다.

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 시스템 프로퍼티를 주입한다.

@Value("#{systemProperties['pop3.port'] ?: 25}")

Last updated