java - 将类添加到数组的方法仅将类添加到第一个位置

标签 java

方法如下

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/

相关文章:

java - 用户文件保存在哪里?

java - 如何在另一个方法中调用变量?

java - 从 clojure 调用带有可选 null 参数的 java 函数

java - FireStore数据插入(Android Studio 3.6.1)

java - 无法获得连接 : general error

java - 在 Mac 上运行 Eclipse - 需要 JVM 版本 1.7 或更高版本

java - 发送到主题时抛出 TimeoutException

java - Java对象是如何构造的?

java - 在Java中分割字符串,

java - 聚合具有彼此依赖关系的 JUnit 规则