JAVA STUDY(with whiteship) 12주차 Annotation

hwk·2021년 3월 5일
0

JAVA STUDY

목록 보기
12/12
post-custom-banner

목표

자바의 애노테이션에 대해 학습.

학습할 내용

애노테이션 정의하는 방법
@retention
@target
@documented
애노테이션 프로세서

■ @Override

interface Viewable {
	public void showIt(String str);
}
class Viewer implements Viewalbe {
	@Override
	public void showIt(String str) {
		System.out.println(str);
	}
}

만약 위의 showIt 메서드에서 매개변수가 String이 아닌 다른 값이 들어간다면
이것은 오버라이딩이 아닌 오버로딩이다.
@Override 애너테이션을 붙여주면 그럴경우 컴파일 에러가 생기기 때문에 휴먼에러를 방지할 수 있다.

■ Deprecated
Deprecated로 선언된 것을 사용하면 컴파일 경고가 발생한다.

interface Viewalbe {
	@Deprecated
	public void showIt(String str);
	public void brShowIt(String str);
}
class Viewer implements Viewalbe {
	@Override
	public void showIt(String str) {
		System.out.println(str);
	}	// 컴파일 경고
	@Override
	public void brShowIt(String str) {
		System.out.println('[' + str + ']');
	}
}
public static void main(String[] args) {
	Viewable view = new Viewer();
	view.showIt("Hello Annotations"); // 컴파일 경고
	...
}

Deprecated는 하위호환성을 유지하기 위해 존재한다.
문제의 발생 소지가 있거나 개선된 기능의 다른 것으로 대체되어서 더이상 필요 없게 되었음을 뜻한다.
일반적으로는 잘 쓰이진 않지만, 규모가 큰 프로젝트에서는 사용된다.

■ SuppressWarnings
경고 메시지를 생략하게 하는 의미이다.
하지만 경고 메시지를 생략하는 것은 좋지 않기 때문에
지나치게 남발하는 것은 지양할 필요가 있다.

interface Viewalbe {
	@Deprecated
	public void showIt(String str);
	public void brShowIt(String str);
}
class Viewer implements Viewalbe {
	@Override
	@SuppressWarnings("deprecation") // deprecation 관련 경고 메시지를 생략하라는 의미
	public void showIt(String str) {
		System.out.println(str);
	}	// 컴파일 경고
	@Override
	public void brShowIt(String str) {
		System.out.println('[' + str + ']');
	}
}
@SuppressWarnings("deprecation")
public static void main(String[] args) {
	Viewable view = new Viewer();
	view.showIt("Hello Annotations"); // 컴파일 경고
	...
}

# End

_참고 서적 : 윤성우의 열혈 Java

profile
Elegant Dev
post-custom-banner

0개의 댓글