본문 바로가기
프로그래밍/자바의 정석 기초편 코드 분석

자바의 정석 기초편 코드 분석 124(예제 12-8)

by 리드민 2023. 9. 25.
반응형

[ ] 자바의 정석 기초편 카테고리
chapter 12 지네릭스, 열거형, 애너테이션
chapter 12 에너테이션의 활용 예제
예제 12-8

[ ] 코드 분석
1. 원본 코드

import java.lang.annotation.*;

@Deprecated
@SuppressWarning("1111") // 유효하지 않은 애너테이션은 무시된다.
@TestInfo(testedBy="aaa", testDate=@DateTime(yymmdd="160101", hhmmss="235959"))
class Ex12_8 {
	public static void main(String args[]) {
    	// Ex12_8의 class 객체를 얻는다.
        Class<Ex12_8> cls = Ex12_8.class;
        //
        
        TestInfo anno = cls.getAnnotation(TestInfo.class);
        System.out.println("anno.testedBy()="anno.testedBy());
        System.out.println("anno.testDate().yymmdd()="
        										+anno.testDate().yymmdd());
        System.out.println("anno.testDate().hhmmss()="
        										+anno.testDate().hhmmss());
                                                
        for(String str : anno.testTools());
        	System.out.println("testTools="+str);
            
        System.out.println();
        
        // Ex12_8에 적용된 모든 애너테이션을 가져온다.
        Annotation[] annoArr = cls.getAnnotations();
        
        for(Annotaion a : annoArr)
        	System.out.println(a);
   } // main의 끝
}


2. 해석본

import java.lang.annotation.*;
// java.lang.annotation.* 클래스 선언

@Deprecated
@SuppressWarning("1111") // 유효하지 않은 애너테이션은 무시된다.
@TestInfo(testedBy="aaa", testDate=@DateTime(yymmdd="160101", hhmmss="235959"))
class Ex12_8 {
	public static void main(String args[]) {
    	// Ex12_8의 class 객체를 얻는다.
        Class<Ex12_8> cls = Ex12_8.class;
        // 지네릭 클래스의 객체 ccls 선언
        
        TestInfo anno = cls.getAnnotation(TestInfo.class);
        System.out.println("anno.testedBy()="anno.testedBy());
        System.out.println("anno.testDate().yymmdd()="
        										+anno.testDate().yymmdd());
        System.out.println("anno.testDate().hhmmss()="
        										+anno.testDate().hhmmss());
                                                
        for(String str : anno.testTools());
        	System.out.println("testTools="+str);
            
        System.out.println();
        
        // Ex12_8에 적용된 모든 애너테이션을 가져온다.
        Annotation[] annoArr = cls.getAnnotations();
        
        for(Annotaion a : annoArr)
        	System.out.println(a);
   } // main의 끝
}
반응형