コードをコンパイルすると、次のメッセージが表示されます。
Note: H:\Project2\MyGui2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
で再コンパイルするにはどうすればよい-Xlint:unchecked
ですか?
回答:
javacのコマンドラインで指定します。
javac -Xlint:unchecked
または、Antを使用している場合は、javacターゲットを変更します
<javac ...>
<compilerarg value="-Xlint"/>
</javac>
Mavenを使用している場合は、 maven-compiler-plugin
<compilerArgument>-Xlint:unchecked</compilerArgument>
<compilerArgument>
の下で行く<configuration>
内にない`<compilerArguments>」要素。 愚かな私。
以下のためのIntelliJ 13.1へ行くFile> - Settings- > Project Settings- > Compiler> -Java Compilerのために、そして右側にAdditional command line parameters
入力します"-Xlint:unchecked"
。
gradleプロジェクトでは、次の方法でこのコンパイルパラメーターを追加できます。
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked"
}
}
Compile
名前がに変更されたためJavaCompile
、次のようになりますtasks.withType(JavaCompile) { ... }
allprojects { // ... }
私はそれが奇妙に聞こえることを知っています、しかし私はこれがあなたの問題であるとかなり確信しています:
MyGui.javaのどこかで、型を指定せずにジェネリックコレクションを使用しています。たとえば、どこかでArrayListを使用している場合は、次のようにします。
List list = new ArrayList();
これを行う必要がある場合:
List<String> list = new ArrayList<String>();
Gradleには別の方法があります。
compileJava {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
CMDで、次のように記述します。
javac -Xlint:unchecked MyGui2.java
チェックされていない、または安全でない操作のリストが表示されます。
Gradleコンパイラの引数を指定するためのよりクリーンな方法は次のとおりです。
compileJava.options.compilerArgs = ['-Xlint:unchecked','-Xlint:deprecation']
-Xlint:uncheckedを使用してコマンドラインからコンパイルする他の方法
javac abc.java -Xlint:unchecked
チェックされていない安全でない警告が表示されます。
-Xlint:unchecked
は、メッセージが示すように、実行しているコマンドラインにを追加します。