예)
@Test //이 메소드가 테스트 대상임을 테스트 프로그램에게 알린다. public void method() { ... }
@Override
@Override
를 붙이자.class Parent{
void parentMethod() {}
}
class Child extends Parent{
@Override
void parentMethod() {
}
// void parentmethod() {} //위에 애너테이션이 없으면 오류가 나지 않는다.
}
@Deprecated
Date
클래스의 getDate()
@FunctionalInterface
@FunctionalInterface //함수형 인터페이스는 하나의 추상메소드만 가능!
interface Testable{
void test(); //추상메소드
// void check(); //추상메소드
} //위에 애너테이션이 없으면 오류가 나지 않는다.
@SuppressWarnings
컴파일러의 경고메세지가 나타나지 않게 억제한다.
경고를 개발자가 확인했다는 의미!
괄호()안에 억제하고자 하는 경고의 종류를 문자열로 지정
둘 이상의 경고를 동시에 억제하려면 다음과 같이 해야 한다.
@SuppressWarnings({"deprecation", "unchecked", "varargs", "rawtypes"})
1) ✨cmd 에서 컴파일
javac Ex12_07.java
-Xlint
2) -Xlint
를 사용해서 컴파일
javac -Xlint Ex12_07.java
3) 이클립스로 돌아와서 애너테이션 넣기
@SuppressWarnings("deprecation")
public class Ex12_07 {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Child c = new Child();
c.parentMethod();
}
}
오류는 아니지만 잠재적 위험이기에 미리 처리해주는 게 좋다!
@Target
@Retention
컴파일러에 의해 사용되는 애너테이션의 유지 정책은 SOURCE이다.
실행시에 사용 가능한 애너테이션의 정책은 RUNTIME이다.
흠.................모르겠다
@Documented
@Inherited
@Repeatable