Java 使用泛型创建数组对象
所以我试图创建一个简单的程序,允许我放置一个Int,String,double的数组。。。。要打印对象,请执行以下操作: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
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);
}