자바에서 Annotation은 소스코드에 주석을 다는 일이다.
별도의 properties파일이나 xml같은 설정파일에 작성하는 부가적인 정보를 어노테이션으로 간편하게 설정할 수 있으므로, 코드의 양을 줄일 수 있다.
어노테이션은 @를 붙여 사용하며, 우리가 흔히 볼 수 있었던 어노테이션에는 @Override, @Deprecated 등이 있다.
어노테이션은 아래와 같이 사용자가 정의해서 쓸 수 있다.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Anno {
public String defaultVal() default "OK";
public String val();
}
여기서 Target은 어노테이션을 적용할 대상을 선택하고, Retention은 이 어노테이션의 정보가 어디까지 유지되는지 지정한다.
@Target - Constructor, Field, Enum, Local Variable, Method, Package, Parameter, Type(Class)
@Retention - Source, Class, Runtime
@Documented - 어노테이션을 javadoc에 포함한다.
@Inherited - 어노테이션 상속을 가능케 한다.
다음은 위에 정의한 어노테이션을 어떻게 사용하는지 보겠다.
@Anno(val = "Annotation!!")
public class Member {
.....
}
Target을 TYPE인 클래스에 했으므로 위와 같이 클래스 위에 어노테이션을 사용하고, 아래와 같은 방식으로 어노테이션의 정보를 알아 올 수 있다.
Member member = new Member();
System.out.println(member.getClass().getAnnotation(Anno.class).val());
System.out.println(member.getClass().getAnnotation(Anno.class).defaultVal());
결과는
Annotation!!
OK
'Programinng > Java' 카테고리의 다른 글
자바(Java) - Properties (0) | 2012.12.15 |
---|---|
자바(Java) - null을 반환하면 안된다. (NullPointerException) (0) | 2012.12.15 |
자바(Java) - HttpClient 통신 <Get, Post, DefaultHttpClient> (0) | 2012.12.15 |
자바 JVM (Runtime Data Areas) (0) | 2012.12.15 |
자바(Java) - Exception은 OCP를 위배한다. (0) | 2012.12.15 |