728x90
반응형
Null 이란?
- 미확인 값 또는 값이 할당 되지 않는 상태를 표현한다.
- int 형은 0 을 기본 값으로 가진다. 하지만 참조타입은 기본값으로 null 을 갖는다.
Null은 왜 문제가 될까?
- Null의 아버지 토니 호어가 이를 두고 'The Billion Dollar Mistake(10억 달러짜리 실수)'라고 할 정도다
- 널 참조를 허용했는데 이 때문에 수십 년 동안 일어난 문제가 'billion dollar' 수준으로 손해가 될 만큼 엄청나다는 것을 표현했다.
기본으로 null 을 쓰지말자
- 함수를 사용하는 쪽에서 null 값이 왔는지 제대로 체크하지 않고 값을 쓰면 오류가 터진다.
- 프로그래머가 아닌 사용자도 잘 쓰던 프로그램이 갑자기 오류를 토해내면서 다운되는 바람에 작업을 날려먹는 일이 있을 텐데 오류 메시지를 살펴보면 대부분 null 참조 문제다.
Optional을 사용하자
https://vprog1215.tistory.com/58
비교할경우 equals() 를 사용하자
Object obj = null;
if("TEST".equals(obj)) {
// TODO
}
null safe methods와 library를 사용하자
- null safe인지 아닌지를 annotation을 사용하여 표시하는 것이 좋다.
StringUtils.isEmpty(null)
StringUtils.isBlank(null)
StringUtils.isNumeric(null)
StringUtils.isAllUpperCase(null)
@NotNull 이나 @Nullable 어노테이션을 사용한다.
public final @Nullable String usetName;
참고: https://www.newiki.net/wiki/Null
728x90
반응형
'Language > Java' 카테고리의 다른 글
[Java] HashMap, hashCode(), equals() (0) | 2021.09.06 |
---|---|
[Java] getter 와 setter (0) | 2021.09.05 |
[Java] 직렬화, 역직렬화 (0) | 2021.08.23 |
[Java] java8 에 추가된 기능 (0) | 2021.08.23 |
[Java] Join() 과 StringJoiner (0) | 2021.08.23 |
댓글