第二十四条:消除非受检的警告

原因:有时候由于某种原因,需要将代码设置为非受监测的类型,所以需要消除警告,保证代码安全性。

消除警告的条件?

①、能够在逻辑上保证代码的安全性。

②、消除警告不要在整个类中使用,要在出现问题的代码片段上使用。(缩小范围)

举例:(复制)

	@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;
	}
}
注:使用消除警告的时候,必须在旁边写注释,为什么要消除警告


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值