方法如下
public void addModuleToStudent(Module aModule)
{
int position = 0;
if(position > 3)
{
System.out.println("Error: Student already has four modules\n");
}
else
{
moduleArray[position] = aModule;
position++;
}
}
问题是位置似乎没有增加位置变量,因为每当我添加一个模块类时,它都会占据数组中的第一个位置,而当我添加另一个模块类而不是添加到第二个位置时,它会占据数组中的第一个位置。覆盖第一个。
最佳答案
是的,position
是一个局部变量。每次调用 addModuleToStudent
,你会得到一个新变量,初始化为 0。
听起来您想将其设为实例变量,以便它在方法调用之间保持不变。
更好的是,不要使用数组 - 使用 ArrayList<Module>
相反,然后你可以使用:
public void addModuleToStudent(Module module)
{
if (modules.size() > 3)
{
throw new SomeAppropriateException("Cannot have more than 4 modules");
}
modules.add(module);
}
关于java - 将类添加到数组的方法仅将类添加到第一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743617/