Java 표준 어노테이션(Annotation)
어노테이션 중에서 Java SE 표준에서 제공되는 어노테이션을 표준 어노테이션 이라고 한다.
Java SE 8의 시점에서는 다음과 같은 표준 어노테이션이 있다.
@Override 어노테이션: 재정의 명시
그 메소드가 슈퍼 클래스의 메소드를 오버라이드(override) 하고 있는 것을 선언한다. 생략해도 동작 자체에 지장은 없지만, 명시하는 것으로 메소드명이나 인수에 오타가 있는 경우에는 컴파일러가 경고를 발생한다.
예제) 다음은 @override
어노테이션의 예제이다.
public class Animal {
public void speak() {
}
public String getType() {
return "Generic animal";
}
}
public class Cat extends Animal {
@Override
public void speak() { // This is a good override.
System.out.println("Meow.");
}
@Override
public String gettype() { // Compile-time error due to mistyped name.
return "Cat";
}
}
@Deprecated 어노테이션: 더 이상 사용되지 않는 클래스나 메서드에 선언
그 메소드가 비추천으로 더 이상 사용되지 않을 클래스나 메서드에 선언한다. 이 메소드를 사용한 코드는 컴파일시에 경고를 발생한다.
@Deprecated
public void foo() { ... }
@SuppressWarnings 어노테이션: 경고 메시지 억제
컴파일러가 특정 경고를 발생시키는 것을 억제한다. 예를 들면, 하위 호환성등의 사정으로 비추천의 메소드를 의도해 사용하고 있는 경우에 일일이 경고가 나오는 것은 방해가 된다. 이럴 경우에 이 어노테이션을 선언하여 명시적으로 경고를 끌 수 있다.
@SuppressWarnings("deprecation")
public static void main(String[] args) {
ClassSample g = new ClassSample();
g.hoge(); // 비추천 foo 메소드
}
그밖에 @SuppressWarnings
어노테이션에서 사용할 수 있는 설정은 다음과 같다.
@SuppressWarnings
주석의 기본 설정
설정값 | 경고 내용 |
---|---|
cast |
불필요한 캐스트 |
deprecation |
비추천 회원 이용 |
divzero |
0으로 나누기 |
unused |
사용되지 않는 변수가 있음 |
참고
최종 수정 : 2021-08-27