Part 1. Spring Framework
CH 02. 스프링의 핵심 기술
08. Null-safety
- java는 null check를 매번 해줘야하기 때문에 다른 언어들에 비해 Null을 다루기 쉽지 않다.
- 널 안정성을 높이는 방법
=> 아래와 같은 코드를 만들지 않는 방법
=> 혹은 아래와 같은 널 체크를 하지 않아서 발생하는 NPE(Null Pointer Exception)을 방지하는 방법
(확실한 위치를 반환하지 않음)
=> 완벽한 방법은 아니지만 IDE(Intellij, Eclipse)에서 경고를 표시함으로써 1차적인 문제를 방지하고,
정확한 에러 위치를 확인할 수 있도록 도움
public void method(String request) {
if(request == null) return;
// normal process
System.out.println(request.toUpperCase());
}
@NonNull Annotation
- 해당 값이나 함수 등이 Null이 아님을 나타내는 어노테이션
- org.springframework.lang.NonNull 사용
- 메서드 파라미터에 붙이는 경우 : null이라는 데이터가 들어오는 것을 사전에 방지함
=> 프로퍼티에 붙이는 경우 : null을 저장하는 경우 경고
=> 메서드에 붙이는 경우 : null을 리턴하는 경우 경고, 응답값을 저장하거나 활용하는 쪽도
NonNull이라고 신뢰하고 사용
@Nullable Annotation
- @NonNull과 반대로 해당 데이터가 null일 수 있음을 명시함
- 해당 어노테이션이 붙은 값을 사용하는 경우 null check를 항상 수행하도록 경고
Null 관련 어노테이션 참고
- jetbrain(intellij 개발회사) : https://www.jetbrains.com/help/idea/nullable-and-notnull-annotations.html
- lombok : https://projectlombok.org/features/NonNull
----------------------------------------------------------------------------------------------------------------------------------
https:/bit.ly/37BpXic
'[패스트캠퍼스] Spring' 카테고리의 다른 글
패스트캠퍼스 챌린지 17일차 (0) | 2022.02.09 |
---|---|
패스트캠퍼스 챌린지 16일차 (0) | 2022.02.08 |
패스트캠퍼스 챌린지 14일차 (0) | 2022.02.06 |
패스트캠퍼스 챌린지 13일차 (0) | 2022.02.05 |
패스트캠퍼스 챌린지 12일차 (0) | 2022.02.04 |
댓글