删除有关未选中操作的编译时警告

chi*_*der 2 java compiler-warnings

以下行导致编译时警告:

ArrayList<Integer> a = (ArrayList) b.clone();
Run Code Online (Sandbox Code Playgroud)

创建:

Note: MyClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Run Code Online (Sandbox Code Playgroud)

如何删除编译时警告?-Xlint:none和-nowarn似乎没有帮助.

编辑:我并不太关心类型安全; 在代码的上下文中,我确信类型将起作用.我只想抑制编译器警告.

Paŭ*_*ann 9

您可以@SuppressWarnings("unchecked")在此变量声明之前使用,这应该有助于消除警告.

遗憾的是,实际上没有办法以类型安全的方式进行克隆,您必须信任clone方法才能真正只返回新ArrayList中的整数.

如果您一般不想要此类编译器警告,则可以添加-Xlint:-unchecked以关闭有关未经检查的常规转换的所有警告.然而,仿制药的类型安全性已经完全消失了.


Puc*_*uce 5

使用:

List<Integer> a = new ArrayList<Integer>(b);
Run Code Online (Sandbox Code Playgroud)