-Xlint:uncheckedでコンパイルするにはどうすればよいですか?


84

コードをコンパイルすると、次のメッセージが表示されます。

Note: H:\Project2\MyGui2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

で再コンパイルするにはどうすればよい-Xlint:uncheckedですか?


1
コマンドラインでコンパイルしていますか?その場合-Xlint:uncheckedは、メッセージが示すように、実行しているコマンドラインにを追加します。
101100 2011年

あなたがあなたのコードをどのように実行するかに依存します..それはEclipseからですか?コマンドライン?
ボアズ

あなたは何をした?私は...このエラーメッセージを見たことがない
AlexR

回答:


54

javacのコマンドラインで指定します。

javac -Xlint:unchecked

または、Antを使用している場合は、javacターゲットを変更します

  <javac ...>
    <compilerarg value="-Xlint"/>
  </javac> 

Mavenを使用している場合は、 maven-compiler-plugin

<compilerArgument>-Xlint:unchecked</compilerArgument>

私は3、モデル4.0 Mavenをしている-<compilerArgument>の下で行く<configuration>内にない`<compilerArguments>」要素。 愚かな私。
意志

そして、AOSP内でのコンパイルはどうですか?Android.mkファイルに何を追加する必要がありますか?
Dr.jacky 2017

48

以下のためのIntelliJ 13.1へ行くFile> - Settings- > Project Settings- > Compiler> -Java Compilerのために、そして右側にAdditional command line parameters入力します"-Xlint:unchecked"


ありがとう。ただし、13.1 Community Editionの場合は、[ファイル]-[設定]-[コンパイラ]-[Javaコンパイラ]にあり、フィールドは下部にあります。
RenniePet 2014

7
14.0.3の場合、この設定ページは次の場所に移動しました:ファイル-設定-ビルド、実行、デプロイメント-コンパイラ-Javaコンパイラ。
csauve 2015

1
AndroidStudioにはなく、Javaだけでなくすべてのコンパイラーにコンパイラーオプションが提供されているようです。build.gradleの編集は機能します。
Alex Cohn 2016年

Android Studioのコンパイラオプションが下にありますファイル- >新規プロジェクトの設定] - > [新しいプロジェクトの設定。ただし、既存のプロジェクトには適用できないようです。
JJD

26

gradleプロジェクトでは、次の方法でこのコンパイルパラメーターを追加できます。

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:unchecked"
    }
}

4
最近のgradleバージョンでは、タスクタイプのCompile名前がに変更されたためJavaCompile、次のようになりますtasks.withType(JavaCompile) { ... }
obecker 2017年

1
私はこれが入るはずだと付け加えますallprojects { // ... }
Borzh 2018年

21

私はそれが奇妙に聞こえることを知っています、しかし私はこれがあなたの問題であるとかなり確信しています:

MyGui.javaのどこかで、型を指定せずにジェネリックコレクションを使用しています。たとえば、どこかでArrayListを使用している場合は、次のようにします。

List list = new ArrayList();

これを行う必要がある場合:

List<String> list = new ArrayList<String>();

どうもありがとう、これは私を助けました!
ファーブ2018

14

Gradleには別の方法があります。

compileJava {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

これは、たとえばテストには影響しません。
トリラリオン2015年

2
Androidのメーカーにとって、これは少し異なるアプローチを必要とするようだ:tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
アレックスコーン

3
Androidのメーカー2.1.3プロジェクトのbuild.gradleにこれを追加するための allprojects { repositories { jcenter() } gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }

4

Android Studioのbuild.gradle場合、allprojectsブロック内のトップレベルファイルに以下を追加します

tasks.withType(JavaCompile) {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 
}

3

CMDで、次のように記述します。

javac -Xlint:unchecked MyGui2.java

チェックされていない、または安全でない操作のリストが表示されます。


3

NetBeansなどのIDEを使用している場合Xlint:unchecked は、プロジェクトのプロパティでコンパイラオプションを指定できます。

プロジェクトウィンドウに移動し、プロジェクトを右クリックして、をクリックするだけPropertiesです。

表示されるウィンドウでCompilingカテゴリを検索し、ラベルの付いたテキストボックスでオプションをAdditional Compiler Options設定しXlint:uncheckedます。

したがって、プロジェクトをコンパイルするたびに設定が設定されたままになります。


2

Gradleコンパイラの引数を指定するためのよりクリーンな方法は次のとおりです。

compileJava.options.compilerArgs = ['-Xlint:unchecked','-Xlint:deprecation']

これは短いかもしれませんが、きれいではありません。一つには、それは他の場所で設定された既存のオプションを上書きします。もう1つは、tarnの回答の下のコメントに記載されているように、テストに影響を与えることはできません。これを行わないでください。代わりにxianlinboxの回答を使用してください。
Konrad Rudolph

1

-Xlint:uncheckedを使用してコマンドラインからコンパイルする他の方法

javac abc.java -Xlint:unchecked

チェックされていない安全でない警告が表示されます。


0

参考までに、これらの設定に到達するのはIntelliJ 15で変更され、さらに深く埋葬するために新しく改善されました!

これで、ファイル>その他の設定>デフォルト設定> 'ビルド、実行、デプロイ'>コンパイラ> Javaコンパイラ

また、追加のコマンドラインパラメータに、前と同じように「-Xlint:unchecked」と記述します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.