2011년 6월 13일 월요일

Annotation

Annotation
주석은 데코레이션, 클래스, 인터페이스, 필드에 적용되어 툴과 라이브러리를 활용할 수 있게 함으로써, 코드에 명시적 프로그래밍을 줄이고 좀 더 많은 선언문을 제공한다.
  • 주석은 프로그램의 의미적인 부분에 직접 영향을 주지 않고, 툴이 프로그램을 어떻게 다루어야 하는지에 영향을 준다. 툴이 실행 중인 프로그램의 의미적인 부분에 영향을 줄 수 있다.
  • 주식은 런타임에 소스 파일 또는 클래스 파일 등에서 읽을 수 있다.
  • 주석은 javadoc 태그의 기능을 보안하고 있다. 마크업을 문서 생성시 필요한 정보를 제공하기 위해 사용하고자 할 경우, javadoc 태크 또는 주석을 사용해야 한다.
  • 일반적으로 어플리케이션 프로그래머는 주석 타입을 정의하는 경우가 거의 없지만, 주석 타입을 정의하는 작업이 어렵지는 않습니다.


주석 보류 정책
주석을 어떤 시점에 무시하고 처리하지 않을 지를 결정한다.
@Retention을 이용하여 지정할수 있다.
  • SOURCE : 주석은 소스파일에서만 사용이 가능하다. 즉, 컴파일 시점에는 주석을 무시하고 처리하지 않는다.
  • CLASS : 주석은 컴파일을 하는 동안. class 파일에 저장된다. 하지만 실행되는 동안 JVM이 사용할 수 없다.
  • RUNTIME : 주석은 컴파일 되는 동안, class 파일에 저장되고 실행 중 JVM에 의해 사용 가능하다.

1. import java.lang.annotation.*;
2.
3. @Retention (RetentionPolicy.RUNTIME)
4. @interface ExamAnnotation {
5. String str();
6. int val();
7. }


Built-in Annotation
@Documented
"이 주석은 문서화되어져야 한다"는 것을 명시
다른 주석 선언을 주석하기 위해서만 사용

@Inherited
다른 주석 선언에서만 사용이 가능한 마커 주석
클래스 선언에 사용된 주석에만 영향을 준다.
수퍼 클래스에서 사용된 주석이 서브 클래스로 상속되도록 한다.

@Retention
주석을 어떤 시점에 무시하고 처리하지 않을지를 결정하고자 할 때 사용.
다른 주석의 주석으로만 사용

@Target
주석이 어떤 타입의선언에 적용할 수 있도록 할 것인지를 지정하기 위해 사용된다.
다른 주석의 주석으로만 사용

@Deprecated
"이 주석이 사용된 선언은 이제 더 이상 사용이 안되고 더 새로운 형태로 대체되었다."라는 것을 나타낸다.

@Override
메서드에서만 사용가능한 주석
반드시 오버라이딩 되어야 한다는 걸 의미

@SuppressWarnings
컴파일러에 의해 발생하는 하나 이상의 경고를 감추고자 할 때 사용      

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...