IT/안드로이드+JAVA

[안드로이드] 어노테이션 @annotation, @Override, @Deprecated, @SuppressWarnings

안경 쓴 귀니 2016. 9. 20. 09:09
반응형



[안드로이드] 어노테이션 @annotation, @Override, @Deprecated, @SuppressWarnings




■ 자바 프로그래밍을 할때 유용하게 사용할 수 있는 Annotation(@) 기능
어노테이션은 실무나 스프링프레임워크를 사용하면 자주 사용하게 되는 녀석입니다.

□ 자바 어노테이션 (Annotation)이란?
일반적으로 Java Annotation은 @를 이용한 주석을 뜻 합니다.

자바 어노테이션 (Java Annotation)은 자바5(1.5)부터 제공되기 시작한 기능으로 어노테이션은 한국어로 “주석” 이라 번역됩니다.
하지만 Annotation을 “주석”이라 칭할경우, 흔히 쓰던 주석처리 (//, /**/)와 같은 의미로 오해하기 쉽기 때문에, Annotation이라는
명칭을 그대로 사용하고 있습니다.

비록 용어를 주석과 Annotation으로 구분하긴 했지만, 둘 다 프로그래밍의 구동에 영향을 주지 않는 주석에 불과 합니다.
따라서 Annotation을 몰라도 프로그래밍을 한느데 큰 문제는 없습ㄴ디ㅏ. 하지만 적적하게 주석 또는 Annotation을 사용한다면 프로그래밍 코드의 가독석을 높히는데 큰 도움이 됩니다. (주로 Andriod 프로젝트나 Springframework를 사용하는 대형 프로젝트에서 사용 됩니다.)

■ @Deprecated
이 어노테이션은 가급적 사용을 자제해달라는 의미로 사용된다. 예를 들어 어떤 method 앞에 @Deprecated가 붙으면, 이 메소드를 사용하거나 오버라이드 할 경우, 컴파일 할 때 경고가 뜬다.
Note: B.java user or overrides a deprecated API
Note: Recompile with -Xlint:deprecation for detatils.

그렇다면 @Deprecated는 어떤 용도로 사용될까?

더 나은, 개선된 메소드가 있음을 나태내고자 할때 주로 사용한다. 개발자가 어떤 메소드를 썼는데, 이 메소드가 Deprecated annotation처리 되어 있다면, 이 메소드는 다음 버젼에서 사라지거나 더 개선된 메소드로 대체될 것이기 때문에, 이용을 자제해야한다. (요약하자면, 더 나은 기능을 제공하고 있으니, 차선책을 찾아보라는 의미로 쓰인다)

■ @SuppressWarning(“”)

이 어노테이션 역시 컴파일러의 경고와 관련된 어노테이션이다. @SuppressWarnings의 의미는 이 부분에 대해서 경고문을 출력하지 말라는 의미이다. 자바에서 주로 등장하는 경고문의 종류에는 deprecation과 unchecked가 있다. 이 둘둥 하나를 @SuprpressWarnings옆의 괄호에 넣어야 한다.

@SuppressWarnings(“unchecked”)
라고 Annotation을 달 경우, unchecked 경고문 (Generics를 사용하지 않았을 경우 발생하는 경고)가 뜨지 않게 된다.

@SuppressWarnings(“deprecation”)
라고 Annotation을 달 경우, deprecated 된 메소드를 오버라이드/이용 했을 때 발생하는 deprecation 경고문이 뜨지 않게 된다.

 


[ 출처 : http://cho2.tistory.com/entry/%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EC%9D%B4%EB%9E%80-annotation-Override-Deprecated-SuppressWarnings ]

반응형