Cute Running Puppy
본문 바로가기
개발일기/Java

unknown enum constant When.MAYBE 오류는 아니지만!

by 징구짱 2023. 4. 13.
728x90

✏️ 문제

어느 날부터 눈에 띄는 저 경고들

warning: unknown enum constant When.MAYBE
reason: class file for javax.annotation.meta.When not found

빌드할 때 나오는 저 빨간 뭐시기들... 오류는 아니지만 아주 거슬리는걸?

 

 

✏️ 원인

public ResponseDto createExample(RequestDto requestDto

                                                         , User user

                                                         , @Nullable MultipartFile image) {

           . . .


}


파일 업로드를 위한 @Nullable 어노테이션을 사용한 이후로 발견됨

찾아보니 이 경고는 @Nullable 어노테이션에 대한 것으로, 해당 어노테이션의 when 속성에 대한 값을 처리하지 못해 발생

 

 

✏️ 해결

dependcies 추가

implementation 'com.google.code.findbugs:jsr305:3.0.2'
더보기

Java에서는 null 값이 자주 사용되기 때문에, null 값을 처리하는 방법에 대한 지원이 필요합니다.

이를 위해 Java 5부터는 NullPointerException 예외가 발생할 가능성이 있는 코드에 대해 명시적으로 null 값을 처리할 수 있는 방법을 제공하는 어노테이션 기능을 지원합니다.

이러한 어노테이션은 매개변수, 반환 값, 필드 등에 대해 null 값을 처리하는 방법을 명시적으로 지정할 수 있습니다. 이를 통해 컴파일러와 정적 분석 도구 등에서 null 관련 오류를 사전에 방지할 수 있습니다.

JSR-305는 이러한 nullability 어노테이션을 정의한 명세서 중 하나로, 메소드, 클래스, 변수 등의 null 값 처리에 대한 규칙을 명시적으로 지정할 수 있도록 해주는 어노테이션입니다. 이러한 어노테이션을 사용하면 코드 가독성과 유지보수성을 높일 수 있으며, null 값으로 인한 오류를 방지할 수 있습니다.

이를 사용하면 컴파일러나 정적 분석 툴 등에서 null 포인터 예외와 같은 오류를 사전에 방지할 수 있음

 

 

 

✏️ 해결한 후

적용 후 편안해진 모습!

728x90