原因:有时候由于某种原因,需要将代码设置为非受监测的类型,所以需要消除警告,保证代码安全性。
消除警告的条件?
①、能够在逻辑上保证代码的安全性。
②、消除警告不要在整个类中使用,要在出现问题的代码片段上使用。(缩小范围)
举例:(复制)
@SuppressWarnings("unchecked")
public T[] copyArray(T[] a){
int arraySize = 100;
//复制并扩容
if (a.length < arraySize){
//由于T[]是不可预测参数,所以会报错
return (T[]) Arrays.copyOf(a, arraySize,a.getClass());
}
return null;
}
该方法中,能够保证强制转型之后的类型安全,所以能够消除警告。
但是消除警告的范围太大了,应该是这样使用的
public class ArrayCopy <T>{
public T[] copyArray(T[] a){
int arraySize = 100;
//复制并扩容
if (a.length < arraySize){
//由于T[]是不可预测参数,所以会报错
@SuppressWarnings("unchecked")
T[] b = (T[]) Arrays.copyOf(a, arraySize,a.getClass());
return b;
}
return null;
}
}
注:使用消除警告的时候,必须在旁边写注释,为什么要消除警告