본문 바로가기
프로그래밍 놀이터/안드로이드, Java

@NotNull annotation 의 장점

by 돼지왕 왕돼지 2015. 6. 23.
반응형
-
Find Bugs 와 IntelliJ 는 null check annotation 을 지원한다.
코드 가독성 측면에서 좋지 않다는 이야기도 있지만, 그건 케바케.


-
function 의 param 에 null 이 들어오면 RuntimeException 을 던지도록 처리하는 것이 좋다.

public void testMethodNotNull( @NotNull String param ){

    // do sth.

}

만약 method 선언부에 @NotNull 을 선언하면, validation check 를 통해 null 을 return 하는 경우 빌드에러를 만들 수 있다.

자동으로 되는 것은 아니고, 그런 plug-in 을 설치하거나, annotation processing 하는 코드를 직접 만들면 된다. )

( Kotlin 의 경우 nonnull type 이 따로 있어서 nonnull type 에 null 이 들어오면 compile 단계에서 판별 가능하면 compile error 를 내고, runtime 에서는 runtime error 를 발생시킨다. )




-

@NotNull

String myString;



-
@NotNull annotation 구현

@Documented

@ConstraintValidator(NotNullConstraint.class)

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})

public @interface NotNull {

/**

* @return unknown

*/

String value() default "";


/**

* @return the message if this field is null.

*/

String message() default "must not be null.";

}


참고로 @Nullable 과 @NonNullByDefault annotation 도 있다.




반응형

댓글