@NotNull annotation 의 장점 |
http://robaustin.wikidot.com/annotations-and-notnull
https://www.jetbrains.com/idea/documentation/howto.html
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.";
}
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
android 에서 "Read-only file system" 이라는 메세지가 나오며 file operation 이 안 되면... (0) | 2015.06.29 |
---|---|
Android StrictMode (0) | 2015.06.26 |
이클립스 실행시 Java was started but returned exit code=1 에러가 날때 (0) | 2015.06.23 |
@SerialzedName 어노테이션 (0) | 2015.06.20 |
[android] v7 에 추가된 RecyclerView 에 대해 알아보자 #1 (2) | 2015.06.15 |
댓글