원본 본문으로 이동하기

기초 Java Annotation

정니케 - 자바에서 Annotation은 소스코드에 주석을 다는 일이다. 어노테이션은 @를 붙여 사용하며, 우리가 흔히 볼 수 있었던 어노테이션에는 @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 - 자바