让我晕死了N次的JDK5- @Override。。


多次在将Eclipse编译环境从JDK6换到JDK5的时候,在JDK6下面写的@Override 几乎都要报错。百思不得其解。
网上找了找,终于发现原因了:)
 
@Override 是JDK5引入的,描述如下:
Indicates that a method declaration is intended to override a method declaration in a superclass. If a method is annotated with this annotation type but does not override a superclass method, compilers are required to generate an error message.
 

在JDK6文档中的描述是一模一样!但是真正的麻烦就出在superclass 的理解上!JDK5认为Override重载是覆盖父类方法,而JDK6则将覆盖父类方法与实现接口方法,都定义为Override superclass。 因此只要是实现接口方法的地方写了@Override,JDK5都会报错

 

个人感觉JDK5的@Override可能是设计时候的bug吧:) 因为感觉JDK6的理解比较正确。

 


  
  
  
 

你可能感兴趣的:(eclipse)