例如:
javac Foo.java
Note: Foo.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
例如:
javac Foo.java
Note: Foo.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
当前回答
这个警告也可能会被引发,因为新的HashMap()或新的ArrayList()是泛型类型,必须是特定的,否则编译器将生成警告。
请确保如果您的代码包含以下内容,您必须相应更改
new HashMap() => Map<String,Object> map = new HashMap<String,Object>()
new HashMap() => Map<String,Object> map = new HashMap<>()
new ArrayList() => List<String,Object> map = new ArrayList<String,Object>()
new ArrayList() => List<String,Object> map = new ArrayList<>()
其他回答
解决方案是在<>中使用特定的类型,如ArrayList<File>。
例子:
File curfolder = new File( "C:\\Users\\username\\Desktop");
File[] file = curfolder.listFiles();
ArrayList filename = Arrays.asList(file);
以上代码生成警告,因为ArrayList不是特定类型。
File curfolder = new File( "C:\\Users\\username\\Desktop");
File[] file = curfolder.listFiles();
ArrayList<File> filename = Arrays.asList(file);
上面的代码就可以了。唯一的变化是在ArrayList之后的第三行。
此警告意味着您的代码在原始类型上操作,请使用
-Xlint:unchecked
获取详细信息
是这样的:
javac YourFile.java -Xlint:unchecked
Main.java:7: warning: [unchecked] unchecked cast
clone.mylist = (ArrayList<String>)this.mylist.clone();
^
required: ArrayList<String>
found: Object
1 warning
Docs.oracle.com在这里谈到了它: http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html
如果你按照它所建议的去做,并使用“-Xlint:unchecked”开关重新编译,它将为你提供更详细的信息。
除了使用原始类型(如其他答案所述)外,未检查的强制转换也可能导致警告。
一旦你用-Xlint进行了编译,你应该能够重做你的代码来避免这个警告。这并不总是可行的,特别是当您正在集成无法更改的遗留代码时。在这种情况下,你可以决定在你知道代码是正确的地方取消警告:
@SuppressWarnings("unchecked")
public void myMethod()
{
//...
}
这个警告也可能会被引发,因为新的HashMap()或新的ArrayList()是泛型类型,必须是特定的,否则编译器将生成警告。
请确保如果您的代码包含以下内容,您必须相应更改
new HashMap() => Map<String,Object> map = new HashMap<String,Object>()
new HashMap() => Map<String,Object> map = new HashMap<>()
new ArrayList() => List<String,Object> map = new ArrayList<String,Object>()
new ArrayList() => List<String,Object> map = new ArrayList<>()
我上了两年前的课,也上了一些新课。我在Android Studio中解决了这个问题:
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked"
}
}
}
在我的项目构建中。gradle文件(Borzh解决方案)
如果还剩下一些methods:
@SuppressWarnings("unchecked")
public void myMethod()
{
//...
}