반응형


Annotation?

Annotation은 메타데이터의 형태로, 프로그램에 대한 정보를 제공하지만, 코드가 동작하는 데에 직접적인 영향은 미치지 않는다.



Annotation은 언제 사용될까?

- 컴파일 시  : 컴파일러가 error를 검출하거나, warning을 숨길때 사용된다.

- 컴파일, 디플로이 시 : 소프트웨어 툴들은 어노테이션 정보를 사용해서 코드, XML파일 등을 생성할 수 있다.

- 런타임 시 : 일부 어노테이션들은 런타임시 검사될 수 있다.



Annotation의 형태


@Entity

'@'은 컴파일러가 이 기호 뒤에 오는 것이 어노테이션이라는 것을 알게 해준다. 


@Book(

   name = "Frozen Little Golden Book", 

   anthor = "Victoria Saxon"

)

class TestClass()    {...}

어노테이션은 element를 가질수 있다.


@SuppressWarnings(value = "unchecked")

void myMethod() { ... }

이름이 없는 element를 가질 수도 있다.


@SuppressWarnings("unchecked")

void myMethod() { ... }

단 하나의 value라는 이름을 가진 element를 가지고 있다면 element의 이름이 생략될 수도 있다.


@Author(name = "Jane Doe")

@EBook

class MyClass { ... }

여러개의 어노테이션이 같이 사용 될 수도 있다.(Java SE 8부터 지원)


@Author(name = "Jane Doe")

@Author(name = "John Smith")

class MyClass { ... }

같은 타입의 어노테이션이 동시에 사용 될 수도 있다.(Java SE 8부터 지원)



Annotation Type

① Predefined Annotation Type

                    

▲java.lang에서 정의한 Type                 ▲ java.lang.annotation에서 정의한 Type


  Java에서 정의해 놓은 Annotation Type이다. 이 타입들은 java.lang 또는 java.lang.annotation에 정의되어 있다.

(http://docs.oracle.com/javase/8/docs/api/ 참조)


② CustomAnnotation Type

  Annotaion은 우리가 새로 정의해서 사용할 수도 있는데, 이를 Custom Annotation Type이라고 한다.



반응형

+ Recent posts