Null Safety

두별·2021년 12월 1일
0

Spring Framework

목록 보기
10/18
post-thumbnail

패캠 초격차 Part1. Spring Framework-Ch.02 필기노트

널 안정성을 높이는 방법

  • 아래와 같은 코드를 만들지 않는 방법
  • 혹은 아래와 같은 널 체크를 하지 않아서 발생하는 NPE를 방지하는 방법
    -IDE에서 경고를 표시함으로써 1차적인 문제 방지, 정확한 에러위치 확인
public void method(request) {
	if(request == null) return;
 
	// normal process
	System.out.print(request.toUpperCase());
}

'@NonNull' Annotation

  • 해당 값이나 함수 등이 Null이 아님을 나타내는 어노테이션
  • org.spirngframework.langNonNull 사용
  • 메서드 파라미터에 붙이는 경우 : null이라는 데이터가 들어오는 것을 사전에 방지함
public void method(@NonNull String request) {
	//if(request == null) return;
	// normal process
	System.out.print(request.toUpperCase());
}
  • 프로퍼티에 붙이는 경우 : null을 저장하는 경우 경고
@NonNull
public String request = "REQUEST"; // null이 될 수 없는 프로퍼티

public void method() {
	// normal process
	System.out.print(request.toUpperCase());
    
    request = null; // null이 될 수 없는 변수입니다.
}
  • 메서드에 붙이는 경우 : null을 리턴하는 경우 경고, 응답값을 저장하거나 활용하는 쪽도 NonNull이라고 신뢰하고 사용
@NonNull
public String method() {
	// normal process
	System.out.print(request.toUpperCase());
    
    return null; // null을 return하게 되면 경고
}

@Nullable Annotation

  • NonNull과 반대로 해당 데이터가 null일 수 있음을 명시
  • 해당 어노테이션이 붙은 값을 사용하는 경우 null check를 항상 수행하도록 경고
@NonNull
public String request = "REQUEST"; // null이 될 수 없는 프로퍼티

public void method() {
	// normal process
	System.out.print(request.toUpperCase()); // NPE가 발생할 수 있다고 경고
}

0개의 댓글