18.Null-safety

Null-safety

컴파일타임에 널포인트 익셉션을 최소화

널을 허용하느냐 안하느냐에 따라 툴의 지원을 받아 컴파일타임에 널포인트 익셉션 발생을 방지할 수 있다.

Null-safety
스프링 프레임워크 5에 추가된 Null 관련 애노테이션
@NonNull, @Nullable, @NonNullApi (패키지 레벨 설정), @NonNullFields (패키지 레벨 설정) 을 설정하고 IDE에서 추가설정을 하고 아래처럼 코드를 작성하면 IDE상에서 null을 확인해준다,
목적
● (툴의 지원을 받아) 컴파일 시점에 최대한 NullPointerException을 방지하는 것

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Service
public class EventService {
@NonNull
public String createEvent(@NonNull String name) {
return "hello" + name;
}

}

@Component
public class AppRunner implements ApplicationRunner {

@Autowired
EventService eventService;

@Override
public void run(ApplicationArguments args) throws Exception {
eventService.createEvent(null);
}


}

다음과 같이 패키지 레벨에서 NonNull을 설정하고 Null을 허용할 부분에만 Nullable를 붙여 활용할 수 있다.

1
2
3
@NonNullApi
package sangheon.spring

Share