问题出现场景
在练习MVC模式的小项目时候,创建了一个接口,以及它的实现类。但是在对接口进行实现的时候,一个新的实现前面的@override总是报错,但是实现本身的代码是无问题的。提示修改的方式是删掉@override。
问题的思考
- 先是上网搜索,得到结论。对于@override,这个东西在JDK1.5时候已经生成,但是在解释的时候有BUG,会认为这不是@override而报错。因此替换未JDK1.6及以上版本即可。
- 但是,我本身安装的JDK是1.7。不可能存在1.6修复了BUG,1.7又逆向修复BUG的操作。因此排除这个方案。
问题的解决
- 最后查看论坛发现有个可能性是之前定义的抽象类未保存
- 查看代码,果然,接口中的抽象类未保存的情况下,生成了实现类。但是eclipse在自动生成实现类的时候未提示错误,但是实现类写完保存的时候报错。
- 保存接口中抽象类后,在返回实现类内发现,错误消失
问题的总结
问题可能出现的两种情景
- JDK版本是1.5及1.5以下
— 此时更改JDK版本为1.6及以上即可 - 抽象类未保存
— 此时保存抽象类所在的文件即可