JAVA - 표준 애너테이션

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