[Java] 어노테이션

Hyo Kyun Lee·2022년 2월 3일
0

Java

목록 보기
40/61
post-custom-banner

1. 어노테이션

annotation, 간단하게 @표시를 의미한다.
Java 5부터 새롭게 추가된 기능으로, 클래스 및 메소드에 @표시를 첨가하여 소스코드에 메타코드(세부적인 정보)를 기재하는 도구를 뜻한다.

클래스 컴파일 및 실행 간 어노테이션에서 설정한 값을 참조하여, 클래스가 특정적으로 동작할 수 있도록 설정할 수 있다.

※ Java에서 제공하는 어노테이션도 있지만, 사용자가 직접 정의하고 사용할 수 있는 커스텀 어노테이션도 존재한다.

  • 커스텀 어노테이션 정의 → 사용 → 어노테이션 적용 및 실행

1-1. 어노테이션 정의

어노테이션은 하나의 java 파일이다.

new > annotation으로 annotation 전용 파일을 만들어주면 되는데, 아래와 같이 interface 키워드에 @표시가 붙여진 형태의 클래스가 선언된다.

아래와 같은 anntation을 정의하였다고 가정해보자.

public @interface annotation{
	System.out.println("This is annotation");
}

1-2. 어노테이션 사용 및 적용

이 사용자 지정 annotation을, 특정 class가 실행될 때 본 anntation을 감지하고 실행할 수 있도록 아래와 같이 참조구문을 작성해주어야 한다.

public class annoTest{
	
    @annotation
    public void printHello(){
    	//본 class는 실행될때마다 위 annotation을 참조하면서 실행된다.
        System.out.println("This is method referred by annotation");
    }
}

이 후 main class에서 method와 annotation을 참조하는 구문을 작성하면, 실행시 annotation을 참조할 수 있도록 구성할 수 있다.
※ 예외처리를 필수적으로 진행한다.

public annoTester{
	public void main(String[] args){
    	annoTest at = new annoTest();
        
        //method와 annotation을 연결하기위해 method 정보를 불러온다.
        //아래 구문 실행시 at 객체에서 printHello 메소드가 정의됨
        try{
        	Method method = at.getClass().getDeclaredMethod("printHello");
            if(method.isAnnotationPresent(annotation.class)){
				//annotation이 위에서 정의한 메소드에 related하는지 확인
                at.printHello();
            }
    	}catch(Exception e){
        	e.printStackTrace();
        }
    }
}
post-custom-banner

0개의 댓글