Java Lombok | 메소드 인자 널 체크 - @NonNull

@NonNull

@NonNull으로 메소드의 인수를 주석하면 null 체크가 자동으로 생성된다.

package com.devkuma.tutorial.lombok;

import lombok.NonNull;

public class NonNullTutorial {

    public static void main(String[] args) {
        method("devkuma");
        method(null);
    }

    private static void method(@NonNull String value) {
        System.out.println(value);
    }
}

실행 결과:

devkuma

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.1.1/userguide/command_line_interface.html#sec:command_line_warnings
2 actionable tasks: 2 executed
Exception in thread "main" java.lang.NullPointerException: value is marked non-null but is null
    at com.devkuma.tutorial.lombok.NonNullTutorial.method(NonNullTutorial.java:11)
    at com.devkuma.tutorial.lombok.NonNullTutorial.main(NonNullTutorial.java:8)

위 코드는 @NonNull로 인해 아래와 같이 변경된다.

package com.devkuma.tutorial.lombok;

import lombok.NonNull;

public class NonNullTutorial {
    public NonNullTutorial() {
    }

    public static void main(String[] args) {
        method("devkuma");
        method((String)null);
    }

    private static void method(@NonNull String value) {
        if (value == null) {
            throw new NullPointerException("value is marked non-null but is null");
        } else {
            System.out.println(value);
        }
    }
}
  • value 변수에 대한 널 체크를 하고 자동생성 된 것을 볼 수 있다.



최종 수정 : 2024-01-18