如何在JAVA中使用参数化构造函数创建一个未定义类长度的对象数组?

时间:2015-03-01 15:54:57

标签: java generics

Scanner sc=new Scanner(System.in);
System.out.println("Enter the number.");
int n=sc.nextInt();
PIDManager[] ob;
for (int j=0;j<n;j++)
{   
    ob[j]=new PIDManager("Thread Number "+(j+1));
}

此处PIDManager是一个类,编译器显示可能未定义ob的错误。

2 个答案:

答案 0 :(得分:3)

如果您事先不知道大小,请使用像ArrayList这样的可扩展数组:

List<PIDManager> ob = new ArrayList<>();
..
ob.add(new PIDManager("Thread Number "+(j+1)));

然后使用add方法将元素添加到它。如果您知道大小,那么您可以定义数组:

PIDManager[] ob = new PIDManager[n];

答案 1 :(得分:1)

初始化时,必须在Java中指定数组的大小(数组在Java中不增长)。请改用ArrayListLinkedList等集合。

此外,您还没有初始化阵列。

PIDManager[] ob;

应该是(假设你当时知道大小)。

PIDManager[] ob = new PIDManager[size];

但是片段中的逻辑似乎有些问题。由于您似乎确实需要一个从n

判断的大小为for (int j=0;j<n;j++)的数组