A类是泛型类型,在类B中我想创建一个A类型的对象数组,其中Integer作为泛型参数。
class A<T>
{}
class B
{
A<Integer>[] arr=new A[4]; //statement-1
B()
{
for(int i=0;i<arr.length;i++)
arr[i]=new A<Integer>();
}
}
但是在声明-1中,我收到了未经检查的转换警告。创建此数组的正确方法是什么,所以我不需要使用任何抑制警告声明。
答案 0 :(得分:1)
@SuppressWarnings("unchecked")
A<Integer>[] arr = new A[3];
B(){
for(int i=0;i<arr.length;i++)
arr[i]=new A<Integer>();
}
答案 1 :(得分:1)
有时Java泛型不会让你做你想做的事情,你需要有效地告诉编译器你在执行时真正做的事情是合法的。
所以SuppressWarning annotation is used to suppress compiler warnings for the annotated element. Specifically, the unchecked category allows suppression of compiler warnings generated as a result of unchecked type casts.
检查一下..
@SuppressWarnings("unchecked")
A<Integer>[] arr = new A[3];
B(){
for(int i=0;i<arr.length;i++)
arr[i]=new A<Integer>();
}