kotlin이나 다른 언어들은 null을 잘 다룰 수 있도록 되어 있지만, java 같은 경우는 잘 되어 있지 않다.
public void method(String request){
System.out.println(request.toUpperCase());
}
위와 같은 메서드에서 request가 null 값일때 NullPointerException이 발생할 것이다. 그런데 문제는 Exception이 발생한 위치가 정확하게 나오지 않고 엉뚱한 곳에서 위치가 찍힐때가 많다는 것이다.
Null safety를 이용하면 null이 어디서 나타났는지 항상 정확한건 아니지만 비교적 쉽게 찾을 수 있다.
완벽한 방법은 아니지만 IDE(intellij,Eclipse)에서 경고를 표시함으로써 1차적인 문제를 방지하고,정확한 에러 위치를 확인할 수 있도록 돕는다.
그러면 어떻게 실제로 NUll safety를 구현하는지 알아보자.
@NonNullAnotation
public void method(@NonNull String request){
if(request == null) return;
System.out.println("");
}
@NonNull
public String request = "REQUEST";
public void method(){
System.out.println("request.toUpperCase()");
request = null;
}
@NonNull
public String method(){
System.out.println(request.toUpperCase());
return null;
}
@Nullable Annotation