주석 : 어떤 것의 정보를 제공하는 역할
둘은 정보를 전달받는 대상이 누구인가에 대한 차이점을 가지고 있다.
@Test // 아래 메서드가 테스트 대상임을 테스트 프로그램에게 알리는 애너테이션
public void run() {...생략...}
public void stop() {...생략...}
// run()메서드는 @Test라는 애너테이션의 영향을 받지만 stop()은 영향을 받지 않는다.
에너테이션은 해당 주석이 가르키는 프로그램 외의 다른 프로그램에게는 영향을 주지 않는다.
표준 에너테이션 | 설명 |
---|---|
@Override | 컴파일러에게 메서드를 오버라이딩하는 것이라고 알림 |
@Deprecated | 앞으로 사용하지 않을 대상을 알릴 때 사용 |
@FunctionalInterface | 함수형 인터페이스라는 것을 알림 |
@SuppressWarning | 컴파일러가 경고메세지를 나타내지 않음 |
메타 에너테이션 | 설명 |
---|---|
@Target | 애너테이션을 정의할 때 적용 대상을 지정하는데 사용한다. |
@Documented | 에너테이션 정보를 javadoc으로 작성된 문서를 포함시킨다. |
@Inherited | 에너테이션이 하위 클래스에 상속되도록 한다. |
@Retention | 에너테이션이 유지되는 기간을 정하는데 사용한다. |
@Repeatable | 에너테이션을 반복해서 적용할 수 있게 한다. |
@Override
@Deprecated
@SuperessWarnings
@FunctionalInterface
@Target({적용할 대상1, 적용할 대상2})
@Documented
@Inherited
@Retention
@Repeatable
벨로그 표 만들기 극악무도함ㅜㅠ