91

编译代码时收到一条消息:

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

如何重新编译-Xlint:unchecked

4

11 回答 11

56

在 javac 的命令行中指定它:

javac -Xlint:未选中

或者如果你使用 Ant 修改你的 javac 目标

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

如果您使用的是 Maven,请在maven-compiler-plugin

<compilerArgument>-Xlint:unchecked</compilerArgument>
于 2011-11-21T17:20:39.550 回答
51

对于IntelliJ 13.1,转到File-> Settings-> Project Settings-> Compiler-> Java Compiler,然后在右侧Additional command line parameters输入"-Xlint:unchecked"

于 2014-06-12T05:04:18.723 回答
32

在 gradle 项目中,您可以通过以下方式添加此编译参数:

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:unchecked"
    }
}
于 2014-01-07T23:09:19.530 回答
23

我知道这听起来很奇怪,但我很确定这是你的问题:

在 MyGui.java 中的某个地方,您正在使用通用集合而不指定类型。例如,如果您在某处使用 ArrayList,则您正在执行以下操作:

List list = new ArrayList();

当你应该这样做时:

List<String> list = new ArrayList<String>();
于 2011-11-21T17:22:09.927 回答
17

gradle还有另一种方式:

compileJava {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
于 2014-09-05T07:55:11.447 回答
5

对于 Android Studio,将以下内容添加到块内的顶级build.gradle文件中allprojects

tasks.withType(JavaCompile) {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 
}
于 2019-05-09T06:29:19.243 回答
3

在 CMD 中,编写:

javac -Xlint:unchecked MyGui2.java

它将显示未检查或不安全操作的列表。

于 2012-07-18T19:09:23.910 回答
3

如果您使用像 NetBeans 这样的 IDE,则可以Xlint:unchecked 在项目的属性中指定编译器选项。

只需转到项目窗口,右键单击项目,然后单击Properties

在出现的窗口中搜索Compiling类别,并在标有标签的文本框中Additional Compiler Options设置Xlint:unchecked选项。

因此,每次编译项目时,该设置都将保持设置。

于 2013-11-21T13:30:02.097 回答
2

使用 -Xlint 编译的其他方式:通过命令行取消选中

javac abc.java -Xlint:unchecked

它将显示未经检查和不安全的警告。

于 2013-10-16T11:53:21.820 回答
2

指定 Gradle 编译器参数的一种更简洁的方法如下:

compileJava.options.compilerArgs = ['-Xlint:unchecked','-Xlint:deprecation']
于 2017-01-02T00:25:37.957 回答
0

仅供参考,IntelliJ 15 的这些设置已经改变,新的和改进的更深的埋葬!

现在是:文件 > 其他设置 > 默认设置 > '构建、执行、部署' > 编译器 > Java 编译器

并且在附加命令行参数中,和之前一样,写“-Xlint:unchecked”。

于 2016-06-02T09:03:03.563 回答