Null Safety

널 μ•ˆμ •μ„±μ„ λ†’μ΄λŠ” 방법

  • μ•„λž˜μ™€ 같은 μ½”λ“œλ₯Ό λ§Œλ“€μ§€ μ•ŠλŠ” 방법

  • ν˜Ήμ€ μ•„λž˜μ™€ 같은 널 체크λ₯Ό ν•˜μ§€ μ•Šμ•„μ„œ λ°œμƒν•˜λŠ” NPE λ₯Ό (Null Pointer Exception) λ°©μ§€ν•˜λŠ” 방법

  • μ™„λ²½ν•œ 방법은 μ•„λ‹ˆμ§€λ§Œ IDE μ—μ„œ κ²½κ³ λ₯Ό ν‘œμ‹œν•¨μœΌλ‘œμ¨ 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 λ₯Ό 항상 μˆ˜ν–‰ν•˜λ„λ‘ κ²½κ³ 

Last updated

Was this helpful?