2020. 9. 26. 11:13ㆍ개인공부/java
표준 애너테이션 들
@Override
-오버라이딩을 올바르게 했는지 컴파일러가 체크하게 함.
- 오버라이딩할 때 메서드 이름을 잘못적는 실수를 하는 경우가 많다.
class Parent(
void parentMethod() {}
)
class Child extends Parent(
void parentmethod() {} // 오타를 쳐서 전혀 다른 메서드가 생김.
)
@Deprecated
-앞으로 사용하지 않을 것을 권장하는 필드나 메서드에 붙인다.
- @Deprecated의 사용 예, Date클래스의 getDate()
- 이 애너테이션이 붙은 대상은 다른 것으로 대체되었으니 더 이상 사용하지 말아달라 (권고)
@deprecated
public int getDate() {
return normalize().getDayOfMonth();
}
@FunctionalInterface
- 함수형 인터페이스에 붙이면, 컴파일러가 올바르게 작성했는지 체크
- 함수형 인터페이스에는 하나의 추상메서드만 가져야 한다는 제약이 있음 (컴파일러가 체크)
@FunctionalInterface // 추상메서드가 0개 이거나 1개 초과이면 에러가남.
interface Testable{
void run(); // 함수형 인터페이스는 하나의 추상메서드만 가질수 있음.
}
@SuppressWarnings
-컴파일러의 경고메세지가 나타나지 않게 억제한다.
- 괄호()안에 억제하고자하는 경고의 종류를 문자열로 지정
@SuppressWarnings("unchecked") // 내가 알고있으니 체크했으니 더이상 경고를 내보이지 마라!
ArrayList list =new ArrayList();
list.add(obj);
@SuppressWarnings ({"deprecation", "unchecked", "varargs"});
-여러개의 경고 메세지 억제.
-Xlint 옵션을 붙여서 컴파일 하면 경고 내용 확인 가능.
'개인공부 > java' 카테고리의 다른 글
JAVA - stream (0) | 2020.09.27 |
---|---|
JAVA - 함수형 인터페이스 (0) | 2020.09.26 |
JAVA - 메타 애너테이션 (0) | 2020.09.26 |
JAVA -애너테이션 (0) | 2020.09.25 |
자바 지네릭스 - 2020.07.24 (0) | 2020.07.25 |