2006 년에 회사 프로젝트로 xml 파싱하는게 있었는데 그 때 처음 써봤던 어노테이션...
reflection 과 함게 반복적인 코드들을 자동화 시킬 수 있는 콤보를 보여주신다.
일단 해볼 것은 toString 메소드 자동화를 해보려고 한다.
프로퍼티의 값을 설정하고 출력 테스트를 해보려면 각 클래스마다 toString 을 오버라이딩 해야하는데
귀찮은 건 딱 질색이므로... 일단 고고싱..
ㅁ PrintToString - Annotation
간단하게 설명 들어갑니다. @Retention 의 설명을 아래와 같다.
Indicates how long annotations with the annotated type are to be retained.
해석을 하자면 ... 안되겠다. 그냥 언제까지 어노테이션이 유지되는지를 설정한다.
속성으로는 RetentionPolicy.RUNTIME, CLASS, SOURCE 가 있다. 런타임에서 가지고 놀 것이므로
RUNTIME 을 선택!!
@Target <<< javadoc 은 아래와 같이 설명을 해준다.
Indicates the kinds of program element to which an annotation type is applicable.
어떤 종류의 어노테이션이냐 라는 것을 설정하는 것이다. 하나의 값을 설정해도 되고 여러개를 설정해도 된다.
속성의 종류는 ElementType.FIELD, TYPE, METHOD, PARAMETER, LOCAL_VARIABLE,
CONSTRUCTOR, PACKAGE 가 있다. 여기서는 프로퍼티에 설정할 것이므로 FILED 로 낙찰...
ㅁ 헬퍼 클래스들...
ToStringHelper 클래스는 toString 의 조작에 도움을 주는 클래스이며, BeansHelper 는 자바빈의
getter, setter 메소드를 가지고 오는데 사용합니다. (사실 어딨는지 몰라서 그냥 만든거임..)