エラー対処の備忘録です。
MavenプロジェクトでJavaのコードを書き始めた時に、次のようなエラーが出ました。
References to interface static methods are allowed only at source level 1.8 or above Java(1610613404)
原因
原因はmaven-compiler-plugin
の設定でソースのjavaバージョンを指定していなかったためでした。(デフォルトでは1.7でした1)
javaでインターフェースにstaticメソッドを定義できるようになったのはバージョン1.8からなので、そのメソッドを使うためにはコンパイラにもそのバージョン以上を使うことを指定しないとだめということですね。
修正内容
pom.xmlに追加していたmaven-compiler-plugin
に、以下のように1.8以上のjavaのバージョンを指定するとエラーがなくなりました。
pom.xml
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
(参考 https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html )