许多编译器警告:非受检强制转化警告(unchecked cast warnings)、非受检方法调用警告、非受检普通数组创建警告,以及非受检转换警告(unchecked conversion warnings)。
要尽可能地消除每一个非受检警告。
如果无法消除警告,同时可以证明引起警告的代码是类型安全的,(只有这种情况下才)可以用一个@SuppressWarnings("unchecked")注释来禁止这条警告。
应该始终在尽可能小的范围中使用SuppressWarnings注释。
每当使用SuppressWarnings注释时,都要添加一条注释,说明为什么这么做是安全的。
文档:
java.lang
注释类型 SuppressWarnings
--------------------------------------------------------------------------------
@Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})
@Retention(value=SOURCE)
public @interface SuppressWarnings指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。
根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。如果要在特定的方法中取消显示某个警告,则应该注释该方法而不是注释它的类。
--------------------------------------------------------------------------------
必需元素摘要
String[] value
将由编译器在注释的元素中取消显示的警告集。
要尽可能地消除每一个非受检警告。
如果无法消除警告,同时可以证明引起警告的代码是类型安全的,(只有这种情况下才)可以用一个@SuppressWarnings("unchecked")注释来禁止这条警告。
应该始终在尽可能小的范围中使用SuppressWarnings注释。
每当使用SuppressWarnings注释时,都要添加一条注释,说明为什么这么做是安全的。
文档:
java.lang
注释类型 SuppressWarnings
--------------------------------------------------------------------------------
@Target(value={TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})
@Retention(value=SOURCE)
public @interface SuppressWarnings指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。
根据风格不同,程序员应该始终在最里层的嵌套元素上使用此注释,在那里使用才有效。如果要在特定的方法中取消显示某个警告,则应该注释该方法而不是注释它的类。
--------------------------------------------------------------------------------
必需元素摘要
String[] value
将由编译器在注释的元素中取消显示的警告集。