JAVA - 애너테이션

jodbsgh·2022년 4월 18일
0

💡"JAVA"

목록 보기
43/67

애너테이션이란?

주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공

표준 애너테이션

  • JAVA에서 제공하는 애너테이션

@Override

  • 오버라이딩을 올바르게 했는지 컴파일러가 체크하게 한다.
  • 오버라이딩할 때 메서드이름을 잘못적는 실수를 하는 경우가 많다.
class Parent{
	void parentMethod(){}
}
class Child extends Parent{
	void parentmethod(){}	//오버라이딩 하려했으나 실수로 대문자를 소문자로 기입
}

/////////////////////////////

class Parent{
	void parentMethod(){}
}
class Child extends Parent{
	@Override				//애너테이션을 통해서 컴파일러가 오류 발견
	void parentmethod(){}	//오버라이딩 하려했으나 실수로 대문자를 소문자로 기입
}

@Deprecated

  • 앞으로 사용하지 않을 것을 권장하는 필드나 메서드에 붙인다.
  • @Deprecated의 사용 예, Date클래스의 getDate()
@Deprecated
public int getDate(){
	return normalize().getDayOfMonth();
}
  • @Deprecated가 붙은 대상이 사용된 코드를 컴파일하면 메시지가 나타남

@FunctionalInterface

  • 함수형 인터페이스에 붙이면, 컴파일러가 올바르게 작성했는지 체크
  • 함수형 인터페이스에는 하나의 추상메서드만 가져야 한다는 제약이 있음
	@FunctionalInterface
    public interface Runable{
    	public abstract void run();	//추상 메서드
      //public abstract void test(); 2번째 추상메서드라서 오류
    }

@SuppressWarnings

  • 컴파일러의 경고메시지가 나타나지 않게 억제한다.
  • 괄호()안에 억제하고자하는 경고의 종류를 문자열로 지정
@SuppressWarnings("unchecked")		//지네릭스와 관련된 경고를 억제
ArrayList list = new ArrayList();	//지네릭스 타입을 지정하지 않음
list.add(obj);						//여기서 경고 발생
  • 둘 이상의 경고를 동시에 억제하고 싶을 경우
@SuppressWarnings({"deprecation", "unchecked", "varargs"})
  • 'Xlint'옵션으로 컴파일하면, 경고메시지를 확인할 수 있다.
profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글