用Java创建通用数组

参见英文答案 >
Array of Generic List                                    5个

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中,我收到了未经检查的转换警告.创建此数组的正确方法是什么,因此我不需要使用任何抑制警告语句.

最佳答案 有时Java泛型不会让你做你想做的事情,你需要有效地告诉编译器你在执行时真正做的事情是合法的.

因此,SuppressWarning注释用于抑制带注释元素的编译器警告.具体来说,未经检查的类别允许抑制由于未经检查的类型转换而生成的编译器警告.

检查一下..

@SuppressWarnings("unchecked")
A<Integer>[] arr = new A[3];
B(){
   for(int i=0;i<arr.length;i++)
   arr[i]=new A<Integer>();
 }
点赞