Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[Spring] Elvis operator(?:) in SpEL(Spring Expression Language) Computer & Program

자바에는 3항 연산자가 유일하게 하나 있다. 영어로는 Ternary operator라고 한다. (아마 대부분의 언어가 유일하리~)

result = (condition)? trueValue : falseValue;


Spring SpEL을 사용하는 도중.. @Value를 사용해서 변수 값을 설정하는데 3항 연산자를 쓰고 싶은 부분이 생겼다. 어찌 방법이 없누 살펴보다 보니 Elvis operator라는 멋진 녀석을 발견했다. (물론 SpEL에 3항 연산자도 있다.)

사용 방법은 이렇게.. 아래 방법은 properties에서 값을 꺼내는데, 값이 설정되지 않은 경우 default 값을 넣어주고 싶은 내용이다. 조건이 참일 때의 값이 없다는게 Elvis operaotr와 Ternary operator의 차이점이다. 참이면 조건의 내용을 그대로 반환한다. Groovy의 ternary operator를 사용했다 한다.

@Value("#{myPorperties['my.file.key']?:'/my/default/file/path'}")
private File myFile;


Groovy 문서에서 Elvis operator를 소개하는 코드를 살펴보면 이렇다. 3항 연산자가 멋지게 줄어든게 보인다.

displayName = user.name ?: "Anonymous"


+ 역시 Groovy 겁나 멋지다 TㅅT
+ 그리고 Elvis operator와 함께 소개된 개념이 있는데 Safe navigation operator다. 이것도 겁나 멋지다. TㅅT 이건 다음 포스트에..

핑백

덧글

  • 권남 2011/11/23 20:29 # 삭제 답글

    유용한 연산자 잘 봤습니다.
    쓸데가 많겠네요.
  • Sigel 2011/11/27 15:02 #

    유용하게 쓰기 좋은 것 같아요 :D
댓글 입력 영역

Google AdSense (text/image)