最近项目组有个同事使用实现类实现接口后,自动生成的@override总是有红色的错误提示。
后来检查了下,是因为idea中的language level设置问题。这里科普下language level的作用(这部分是网上收集的):
其他 IDE 没有看到类似 language level 的设置,所以这个功能应该算是 IntelliJ IDEA 特有的,可是 IntelliJ IDEA 官网也没有专门介绍 language level 的地方,也许 IntelliJ IDEA 认为这个知识点属于 JDK 范畴所以没加以介绍吧。所以这里主要我对此的一些理解。我们应该知道 Java JDK 在每个新版本都会有其新特性,而新版本一般也会向下兼容旧版本的特性,IntelliJ IDEA 是对这些 JDK 的新特性是这样介绍的:
JDK 6 的新特性:@Override in interfaces
JDK 7 的新特性:Diamonds,ARM,multi-catch etc.
JDK 8 的新特性:Lambdas,type annotation etc.
JDK 9 的新特性:Jigsaw project etc.