리팩토링을 진행하면서 발생한 Null Exception 오류를 보면서 다음과 같은 생각을 해보았다.
그리고, 자바스크립트의 삼항연산자 로직을 보면서 자바에서도 이를 적용하여, null exception을 효과적으로 처리할 수 있는 방안을 알게되었다.
삼항연산자는 expr ? A : B, expr(표현 혹은 조건식)이 참이면 A, 거짓이면 B를 반환한다.
String value = "HELLO";
라는 문자열이 있다고 하자.
String value2 = "";
value2 = value ? value : "HI";
이 value2 변수를 초기화하기 위한 삼항연산자에서,
여기서 중요한 점은
따라서, 이러한 방법을 이용하여 instance가 초기화되어있지 않은 상태에서 초기값을 설정하거나, 초기값을 설정하지 않은 상태를 if/isEmpty()/NULL과 같은 복잡하고 가독성 떨어지는 조건문을 이용하지 않고도 파악할 수 있으며, 동시에 변수까지 할당할 수 있다.
이와 비슷한 원리로, NULL과 undefined를 판단하여 연산하는 ??(NULL병합 연산자)도 있다.
두가지를 매우 유용하게 사용할 수 있을 것으로 보이므로 반드시 기억해서 사용하도록 하자.
NULL 병합 연산자 / 삼항 연산자 - https://d-dual.tistory.com/32