我使用eclipse,当我使用快捷方式来生成覆盖实现,那里有一个覆盖注释,我使用JDK 6,这是没问题的,但在JDK 5下,这个注释会导致错误,所以我想问,如果这个注释是完全无用的?编译器会使用这个注释来做某种优化吗?IDE的自动生成的@override注释有什么好处?
4
A
回答
3
正如其他人所指出的那样,@Override
注释是一个真正的编译器指令,指示javac
尖叫如果与@Override
注释的方法实际上并不在它的父类覆盖的方法(例如,你实际上是因为你决定改变方法签名或者拼错方法名称)。
在JDK 5,直接实现从界面的方法是不考虑重写该方法,如果标注了@Override
被认为是一个错误。
在某种程度上,由于用户的反馈,这是一个非常混乱的行为,JDK 6改变这种行为,并认为这是正确标注你从一个接口@Override
实现的方法。
3
该注释非常有价值,因为它会使新方法确实或不覆盖父类的方法。例如,你可能会认为你重写了,但是你拼错了方法名(或者重写的方法的签名在此期间改变了)。
3
这不是无用的。它有助于读者理解代码和作者以避免错误。
也就是说,JDK 5和JDK 6的行为与@Override
不同,因此如果它们导致问题,请将其删除。他们绝对没有功能上的差异。
4
它的目的是让编译器能够告诉你何时该方法实际上并不覆盖超类方法。例如,假设拼错了名称,编译器会提示您该方法没有覆盖任何内容,因此您将能够捕获错误,而不是运行程序,也不理解为什么您的方法永远不会获取调用。
2
针对您将要部署到的JDK编译代码。
问题在于,注解对于从版本6中的接口中定义的基类和方法重写方法有效,但仅针对版本5中的重写方法。因此,在接口中定义的方法上的@override将导致您的在JDK错误5
相关问题
- 1. Python函数注释有什么好处?
- 2. @Override注释的用途是什么?
- 3. 自动生成注释
- 4. @Override注释
- 5. @override注释
- 6. 它为什么不自动在Eclipse中生成方法注释?
- 7. 如何自动生成的类注释春天JMX注释
- 8. 为什么Eclipse在“生成委托方法”重构中添加@Override注释?
- 9. 为什么IDE将我的类标记为自动生成的?
- 10. @Override注释混淆
- 11. @Override注释问题
- 12. 在Eclipse中自动生成Javadoc注释?
- 13. 如何删除NetBeans中的所有自动生成的注释
- 14. 什么是@Override注释的点在Java 1.6的
- 15. 从xml动态生成java bean类有什么好处?
- 16. 什么是@Override批注
- 17. 自动变量的好处是什么?
- 18. 关于在活动@Override注释回调
- 19. Eclipse不喜欢@Override注释
- 20. 保持生成的时间戳有什么好处吗?
- 21. C#项目有自动生成的类,但是什么自动生成它们?
- 22. 2010年初有什么好的Scala IDE?
- 23. 通过注释动态生成注射
- 24. 什么IDE是好的rubyonrails
- 25. 为什么javac在@Override注释上失败
- 26. 为什么Maven不能构建解析@Override注释?
- 27. 什么是gcc生成的汇编注释中的batmp和%fsp?
- 28. Vim的自动生成不需要的JS注释块
- 29. JAXB生成没有注释的java类
- 30. 关于@Override注释的使用
是的,仅当实现接口方法时才会出现该错误。 – Sawyer 2010-03-15 14:51:58