下午好一切,为什么我们必须为@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