【问题标题】:ArrayIndexOutOfBoundsException: 0 When I try to access a method to input data to an arrayArrayIndexOutOfBoundsException: 0 当我尝试访问将数据输入到数组的方法时
【发布时间】:2021-06-10 09:32:18
【问题描述】:

您好,我是 Java 新手,我需要一些关于我的问题的帮助。

我有 3 个不同的类,在我的主类中,我从 Team() 类中调用我的方法。这是我要调用的方法:

public void addMember(Member membersAdd){

   members[memberCnt] = membersAdd;
   memberCnt++;
   
}

这是我的主类中调用该方法的代码:

                Scanner sc2=new Scanner(System.in);
                System.out.print("\n" + "Enter Name: ");
                tempName = sc2.nextLine();
                System.out.print("Enter Age: ");
                tempAge = sc2.nextInt();
                Member membersAddBB = new Member (tempName, tempAge);
                
                boolean checkQualificationBB = basketball.checkQualification(membersAddBB);
                if(checkQualificationBB == true){
                    if (basketball.memberCnt < basketball.maxMember){
                        
                        
                        basketball.addMember(membersAddBB);

包含在开关中。

当我尝试运行程序时。它显示一个错误

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:0

我尝试了一些东西,并尝试添加

Member [] members = new Member[maxMember];

在一开始就在我的 addMember 方法中。它可以接受我在其中输入的变量,但是当我输入另一个变量时,第一个变量将消失并为空。示例:如果我再次调用它以在索引 1 上添加值,索引 0 将被转换为 null。

我在这部分程序中遇到了困难,如果能帮我解决 java.lang.ArrayIndexOutOfBoundsException: 0 错误会很高兴。

对不起,我是 Java 新手.. 还在学习中

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    您超出了数组的大小(数组是固定大小的)。您需要先初始化一个如下所示的数组,然后才能向其中添加任何内容。

    Member[] members = new Member[10]; // 10 members.
    

    但最终你可能会超过这个值,所以我建议你使用ArrayList&lt;Memmber&gt;,因为列表会根据需要动态增长。或者您可以执行以下操作来复制数组并根据需要更新其大小。需要import java.util.Arrays;

    public void addMember(Member membersAdd){
        if (memberCnt >= members.length) {
        // copy array and increase size by 10.
         members = Arrays.copyOf(members, members.length+10);
        }
        members[memberCnt] = membersAdd;
        memberCnt++;
    }
    

    【讨论】:

    • 非常感谢WJS!它适用于数组的副本。这是我第一次听说 ArrayList,我会花时间研究它。同时,我尝试了您的第二个解决方案,并尝试输出数组的内容,效果很好。再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2021-05-17
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    相关资源
    最近更新 更多