今天在写代码时,准备实现一个自己写的接口的时候,发现如果在需要实现的方法前面加上@Override注解,这个注解是标红的,即被IDE认为是错误的。
上网查阅资料后发现,原来在JDK5时,当时的设计者认为,对于接口的实现时各个方法是不算做Override的,因此@Override
注解是不应该用在这种情况的,而在JDK6之后,规则修改为允许在实现接口方法时使用。因此,如果我们需要使用这个注解,必须保证我们所使用的JDK的版本是6及以上的。
OK,那么就先修改IDE的JDK版本吧,笔者这里所用的IDE为IDEA,操作方法为:点击file菜单,点击Project Structure选项,然后点击左侧的project选项,即可选择项目所用的JDK和语言版本了。
结果点进来看了之后,发现我的IDE里的设置是没有问题的。。。
那么,其实还有一个地方是需要去检查的,同样位于刚才所点开的project structure里,点击左侧的Modules,可以看到右侧有一个language level选项,这里也要配置到6以上(这里6的特性专门提到了@Override in interface)。
如下图:
这两处修改之后,便发现代码中的@Override不再标红了,希望也可以为大家遇到的问题带来一些帮助。