我试图在java中动态创建对象使用数组
int number = Integer.parseInt(JOptionPane.showInputDialog("Enter number of objects"));
int n[] = new int[number];
for (int i = 0 ; i < number ; i++) {
SomeClass n[i] = new SomeClass(1,5,6);
}
然而,行SomeClass n[i] = new SomeClass(1,5,6);
会抛出以下错误
variable n is already defined
答案 0 :(得分:4)
您的代码似乎试图将n[i]
声明为变量。您不需要这样做,因为n
已经宣布。您只需要对数组元素进行赋值:
n[i] = new SomeClass(1, 5, 6);
...但您还需要更改n
的类型:
SomeClass[] n = new SomeClass[number];
(你可能使用SomeClass n[]
但不鼓励使用这种语法;如果将所有类型信息放在一个地方,它会更清楚。)
答案 1 :(得分:0)
n
已经定义为int数组,您再次尝试将其定义为SomeClass
的引用,因此错误。尝试将Someclass
的引用更改为n
以外的其他内容。
答案 2 :(得分:0)
在您的代码中n[i]
是int
,因为n
是int[]
(数组int
)。您无法动态更改n[i]
的类型。