✏️ 문제
어느 날부터 눈에 띄는 저 경고들
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 포인터 예외와 같은 오류를 사전에 방지할 수 있음
✏️ 해결한 후
적용 후 편안해진 모습!
'개발일기 > Java' 카테고리의 다른 글
테스트 코드 작성 삽질 기록 (1) | 2023.04.21 |
---|---|
@NoArgsConstructor / @AllArgsConstructors 생성자를 막 만들지 말자! (0) | 2023.04.20 |
NoSuchElementException 에러 해결 (0) | 2023.04.12 |
CommandAcceptanceException 해결 (0) | 2023.04.12 |
nativeQuery select in 적용하기 (0) | 2023.04.11 |