java - 在 Java 中创建通用数组

标签 java arrays oop generics

<分区>

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>();
    }
}

但在 statement-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>();
 }

关于java - 在 Java 中创建通用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662541/

相关文章:

python - self.__dict__.update(**kwargs) 的风格是好是坏?

java - 如何提高 Field.set 的性能(可能使用 MethodHandles)?

java - 读取包含对象的文件时,ObjectInputStream 抛出 EOFException

java - 在Java中初始化后分配长度给数组?

design-patterns - 层的设计理念是人为的吗?

java - 单例和其他设计问题

java - 调试 osgi 类加载器问题

java - 如何在单个异常中返回异常列表?

c - 在c中声明一个未知大小的全局二维数组

java - 如何从数组中选择3个位置,选择后删除每个位置?