Java 使用泛型创建数组对象

Java 使用泛型创建数组对象,java,arrays,generics,Java,Arrays,Generics,所以我试图创建一个简单的程序,允许我放置一个Int,String,double的数组。。。。要打印对象,请执行以下操作: public class Array<E> { private E[] data; private int size; public Array(int size, E[] data) { this.size=size; for(int i=0; i<size; i++) this.data

所以我试图创建一个简单的程序,允许我放置一个Int,String,double的数组。。。。要打印对象,请执行以下操作:

public class Array<E> {

    private E[] data;
    private int size;

    public Array(int size, E[] data)
    {
        this.size=size;
        for(int i=0; i<size; i++) this.data[i]=data[i];
    }

    public String toString()
    {
        String s=new String();
        for(int i=0; i<size; i++) s+=data[i]+" ";
        return s;
    }
}

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int A[]= {1, 3, 5, 7};
        Array<Integer> niza=new Array<Integer>(4, A);
        System.out.println(niza.toString());
    }

}
你知道是什么导致了这个问题以及可能的解决方案吗

提前谢谢

问题是

    int A[]= {1, 3, 5, 7};
    Array<Integer> niza=new Array<Integer>(4, A);
因为成员
数据
未初始化


虽然我更喜欢使用
ArrayList
而不是数组…

将数组声明为:
Integer A[]={1,3,5,7}不,它仍然不起作用。@AndrewTobilko它是他自己的。。。但Jens的回答解释了当前的问题,他现在有NPE,因为
这个。数据
为空是的,这正是我所做的,它失败了,出现了NullPointerException。为什么这样做?您的
数据
字段未初始化。
    int A[]= {1, 3, 5, 7};
    Array<Integer> niza=new Array<Integer>(4, A);
    Integer A[]= {1, 3, 5, 7};
    Array<Integer> niza=new Array<Integer>(4, A);
private final E[] data;

public Array(int size, E[] data)
{
    this.size=size;
    this.data = Arrays.copyOf(data, size);
}