下午好一切,爲什麼我們必須爲@SuppressWarnings(「unchecked」)使用中間變量?
我想知道有什麼原因,
public class test<T> {
T[] backing_array;
public void a(int initial_capacity) {
@SuppressWarnings("unchecked")
T[] backing_array = (T[]) new Object[initial_capacity];
this.backing_array = backing_array;
}
}
是有效的,但
public class test<T> {
T[] backing_array;
public void b(int initial_capacity) {
@SuppressWarnings("unchecked")
this.backing_array = (T[]) new Object[initial_capacity];
}
}
是一個語法/編譯器錯誤?
爲什麼我們必須使用中介變量@SuppressWarnings("unchecked")
?
mmm ...同樣在這裏,但如果您將SuppressWarning移至類塊之前,儘管如此.. +1。 – Jasonw 2012-01-31 07:58:48
@Jasonw,來自http://docs.oracle.com/javase/7/docs/api/java/lang/SuppressWarnings.html:_「作爲一個風格問題,程序員應該總是在最深嵌套中使用這個註解如果你想在特定的方法中抑制警告,你應該註釋該方法而不是它的類。「_ – 2015-07-14 22:18:41