인터페이스의 메소드를 구현할 때 Eclipse에서 @Override 어노테이션을 추가하고 있습니다. 이클립스는 이것에 아무런 문제가없는 것 같다. 그리고 Cruise Control의 자동 빌드 프로세스에는 아무런 문제가없는 것으로 보입니다. 그러나 javac를 실행하는 ant를 사용하여 명령 줄에서 빌드하면 다음 오류가 발생합니다.javac가 @Override 어노테이션에서 실패하는 이유
[javac] C:\path\project\src\com\us\MyClass.java:70: method does not override a method from its superclass
[javac] @Override
[javac] ^
[javac] 1 error
Eclipse는 Java 1.6에서 실행됩니다. Cruise Control은 Java 1.5를 실행 중입니다. 내 개미 빌드는 내가 사용하는 자바 버전에 관계없이 실패합니다.
이것은 훌륭한 대답입니다. 내가 추가해야 할 것이 하나 있습니다 : 당신이 JDK 1.5에 머무르고 자하는 이유가 무엇이든 최신 업데이트 릴리스로 업그레이드하면됩니다. 저는 u21을 사용하고 있습니다.이 유형의 @Overrides는 정상적으로 컴파일됩니다. –
쿨 - 내 답변에 추가하겠습니다. –
JDK 1.5u21과 1.5u22를 모두 설치했으며 javac에서는 두 릴리스에서 인터페이스 메소드 구현시 @Override를 허용하지 않습니다. 다음은 는 MyRunnable는 java.lang.Runnable의 구현 : C : /Java/jdk/1.5.0_21/bin/javac MyRunnable.java MyRunnable.java:3 : 방법은 슈퍼 클래스 @Override에서 메소드를 오버라이드 (override)하지 않는 public void run() {} ^ 1 오류 [릴리스 정보] (http://java.sun.com/j2se/1.5.0/ReleaseNotes.html)에도 언급되어 있지 않습니다. – djb