Annotation은 Java code만으로 전달할 수 없는 부가적인 정보를 컴파일러나 개발툴로 전달할 수 있다. @Override annotation은 super class나 interface의method를 override하고 있음을 명시한다. 하지만, 사소한 syntax 실수 등으로 orverride가 구현되지 않는경우가 있는데, 이는 runtime 레벨에서 오작동 등으로 드러나게 되므로 그 원인을 찾기가 쉽지 않다. 여기에@Override annotation을 사용하면 compile 레벨에서 상위 메소드를 정확히 구현하고 있는지를 체크할 수 있다.@Override annotation이 컴파일러에게 Override method임을 알려주기 때문이다.
하지만, @Override annotation을 사용했을 때, must override a superclass method라는 에러가 발생한다면, 컴파일러의 버전을 의심할 필요가 있다. J2Se 5.0, 그러니까 JDK 1.5는 @Overrider annotation을 지원하지만, super class에 대해서 지원할뿐, Interface에 대해서는 지원하지 않는다. Interface에 대한 지원은 JDK 1.6을 사용할 때 가능하다.
Interface의 method를 override하는 경우 @Override annotation을 사용하고 싶다면, JDK 1.6버전(J2SE 6.0)을 사용하도록 하라. 그렇지 않으면, annotation을 지우는 수 밖에.
내가 하고 싶은 말을 이렇게 잘 정리를 해놓았네요.
출처 : http://asheed.egloos.com/3871572
'IT-Consultant' 카테고리의 다른 글
휴대폰으로 인터넷 하기 (0) | 2009.02.02 |
---|---|
엔터프라이즈 포털, 2200억 원대 시장 형성 (0) | 2009.02.02 |
스프링 2.5 소스를 톰캣에 올리려고 하니 약간의 문제가 발생하였다. (0) | 2009.02.02 |
공유기 LG-5000P (1) | 2009.01.31 |
Spring AOP 구조 분석 (0) | 2009.01.30 |