第二十四條:消除非受檢的警告

原因:有時候由於某種原因,需要將代碼設置爲非受監測的類型,所以需要消除警告,保證代碼安全性。

消除警告的條件?

①、能夠在邏輯上保證代碼的安全性。

②、消除警告不要在整個類中使用,要在出現問題的代碼片段上使用。(縮小範圍)

舉例:(複製)

	@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;
	}
}
注:使用消除警告的時候,必須在旁邊寫註釋,爲什麼要消除警告


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章