java
1hashmap = new HashMap<>()
のような左辺から右辺のジェネリクスの引数を推論する機能がJava1.7からあるかと思います。
Java1.8環境なので当然使えるだろうとおもって使ったのですが
/home/runner/work/buildcraft-addon-hello-world/buildcraft-addon-hello-world/build/sources/java/com/example/examplemod/NonReversedShapedRecipe.java:40: error: diamond operator is not supported in -source 1.6 > Task :compileJava FAILED for (hashmap = new HashMap<>(); i < params.length; i += 2) { ^ (use -source 7 or higher to enable diamond operator) 1 error
となります。なんと-source 1.6
がjavacに渡されていると言うのです。
https://github.com/yumetodo/buildcraft-addon-hello-world/runs/1437861047
しかし待ってください。私はbuild.gradle
でこれ以上なく明確に1.8と指定しています。
gradle
1sourceCompatibility = 1.8 2targetCompatibility = 1.8
にもかかわらずなぜ反映されないのでしょうか?
もう一つ不思議なことがあります。じつは手元でビルドしていたとき、はじめJAVA_HOME
がJDK15だったということがあり、そのとき同じエラーが出ていました。そこでJAVA_HOME
をC:\Program Files\Java\jdk1.8.0_231
のように変更しました。するとビルドが通ったのです。これはCIでは落ちている86eec7f
の時の話です。しかし一晩開けJavaのソースをリファクタリング(2e8b02a
, 96d4186
, 3e6a8e0
程度の小規模なもの)を終え、ビルドを走らせるとまた上記のエラーが発生したのです。私は夢でも見ていたとでも言うのでしょうか?
環境
Windows 10
開発はVSCode上で行っている
>where javac C:\Program Files\Amazon Corretto\jdk15.0.1_9\bin\javac.exe C:\Program Files\Java\jdk1.8.0_231\bin\javac.exe >echo %JAVA_HOME% C:\Program Files\Java\jdk1.8.0_231
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。