12-25~28 표준 애너테이션
@Override
- 오버라이딩을 올바르게 했는지 컴파일러(javac.exe)가 체크하게 한다.
- 오버라이딩할 때 메서드 이름을 잘못적는 실수를 하는 경우가 많다.
class Parent{
void parentMethod() { }
}
class Child extends Parent {
@Override // 오버라이딩이 잘못 된 경우 컴파일 에러를 낸다!
void parentmethod() { } // 오버라이딩하려 했으나 실수로 이름을 잘못적음.
}
- 오버라이딩할 때는 메서드 선언부 앞에 @Override를 붙이자 (실수를 잡아줌!)
@Deprecated
- 앞으로 사용하지 않을 것을 권장하는 필드나 메서드에 붙인다.(Java는 하위호완성을 중요시 함)
- @Deprecated의 사용 예, Date 클래스의 getDate()
@Deprecated
public int getDate(){
return normalize().getDayOfMonth();
}
- @Deprecated가 붙은 대상이 사용된 코드를 컴파일 하면 Note 경고가 나온다.
- 'Xlint' 옵션으로 컴파일하면, 경고 메시지 확인 가능
@FunctionalInterface
- 함수형 인터페이스에 붙이면, 컴파일러가 올바르게 작성했는지 체크
- 함수형 인터페이스에는 하나의 추상메서드만 가져야 한다는 제약이 있음
@FunctionalInterface // 함수형 인터페이스에는 하나의 추상메서드만 가능
public interface Runnable{
public abstract void run(); // 추상 메서드
// public void check(); // Error. 추상 메서드는 1개만 가능!
}
@SuppressWarnings
- 컴파일러의 경고메시지가 나타나지 않게 억제한다. (경고를 인지한 상태에서 사용)
- 괄호()안에 억제하고자 하는 경고의 종류를 문자열로 지정
@SuppressWarnings("unchecked") // 지네릭스와 관련된 경고를 억제
ArrayList list = new ArrayList(); // 지네릭 타입을 지정하지 않았음.
list.add(obj) // 여기서 경고가 발생
- 둘 이상의 경고를 동시에 억제하려면 다음과 같이 한다.
@SuppressWarnings({"deprecation", "unchecked", "varargs"})
- 'Xlint' 옵션으로 컴파일하면, 경고 메시지 확인 가능
- 확인한 경고는 억제해서 어떤 경고가 있는지 알도록 하고, 새로운 경고가 나타나도 억제해서 나타난 경고를 알게해주는 것이 좋다. (∵경고는 잠재적 위험)
Author And Source
이 문제에 관하여(12-25~28 표준 애너테이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@oyeon/12-2528-표준-애너테이션저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)