@Override
- 오버라이딩을 올바르게 했는지 컴파이럴가 체크하게 된다.
- 오버라이딩할 때 메소드이름을 잘못적는 실수를 하는 경우가 많다.
class Parent {
void parentMethod() { }
}
class Child extends Parent {
@Override //를 적으면 컴파일러가 오류인지 알려줌
void parentmethod() { } // 조상 메소드 이름을 잘못 적었음.
}
@Deprecated
- 앞으로 사용하지 않을 것을 권장하는 필드나 메소드에 붙인다.
-@Deprecated의 사용 예, Date클래스의 getDate()
@Deprecated//자바는 하위호완성을 위해 옛날걸 지우진 않고 사용 권장하지 않을때
public int getDate(){
return normalize().getDayOfMonth();
}

@FunctionallInterface (컴파일러가 사용)
- 함수형 인터페이스에 붙이면 컴파일러가 올바르게 작성했는지 체크
함수형 인터페이스에는 하나의 추상메소드만 가져야 한다는 제약이 있음
@FunctionalInterface
public interface Runnable{
public abstract void run(); //추상 메소드 1개
추상 메소드가 0개거나 2개일떄 컴파일러가 잘못 작성했다고 알려줌
}
@SuppressWarnings (컴파일러가 사용)
- 컴파일러의 경고메세지가 나타나지 않게 억제한다.
- 괄호()안에 억제하고자하는 경고의 종류를 문자열로 지정
@SuppressWarnings("unchecked"); // 제네릭스와 관련된 경고를 억제
ArrayList list = new ArrayList(); // 제네릭 타입을 지정하지 않았음.
list.add(obj); //여기서 경고가 발생
경고를 내가 확인했다는 의미
두개 이상의 경고를 동시에 억제하려면
@SuppressWarnings({"deprecation", "unchecked", "varargs"})
'하.. > java' 카테고리의 다른 글
| ch12 어노테이션 타입 정의하기 어노테이션의 요소 (0) | 2021.12.25 |
|---|---|
| ch12 메타 어노테이션 (0) | 2021.12.25 |
| ch12 어노테이션이란? (0) | 2021.12.25 |
| ch12 열거형에 멤버 추가하기 (0) | 2021.12.25 |
| ch12 열거형(enum) 열거형의 조상 (0) | 2021.12.25 |