java - 在 Java 中将对象分配给数组,它返回 null

标签 java

我已经创建了一个程序并将客户对象分配给客户数组,但是当我尝试获取数组中的对象时它返回 null。我是 Java 的新手,请帮我解决我哪里出错了。

public class Customer {

    private String firstname,lastname;

    public Customer(String f,String l){
        this.firstname = f;
        this.lastname = l;
    }

    public String getFirstName(){
        return firstname;
    }

    public String getLastName(){
        return lastname;
    }   
}

public class Bank {

    private Customer [] customers;
    private int numberofCustomers;

    public Bank(){
        customers = new Customer [5];
        numberofCustomers = 0;

    }

    public void addCustomer(String f,String l){
        int i = numberofCustomers++;
        customers[i] = new Customer(f,l);
    }

    public int getNumberofCustomer(){
        return numberofCustomers;
    }

    public Customer getCustomerMethod(int index){
        return customers[index];
    }
}

public class TestAccount {

public static void main (String [] args){

        Bank b = new Bank();
        b.addCustomer("Test", "LastName");
        System.out.print(b.getNumberofCustomer());
        System.out.print(b.getCustomerMethod(1));

    }
}

最佳答案

数组索引从 开始。您已在数组中索引 0 的第一个元素处添加了一个客户,您应该使用相同的索引来获取该元素。当前索引 1 处没有任何内容,因此您的代码返回 null;

System.out.print(b.getCustomerMethod(0));

假设数组大小为 5,则其索引为 0,1,2,3,4 其中 0 是第一个索引,4 是最后一个索引。

在这一行之后 b.addCustomer("Test", "LastName"); 你的数组将是:

Array: [Customer("Test", "LastName") , null , null, null, null]
Index:                0             ,  1   ,  2  ,   3 ,  4

当您尝试“System.out.print(b.getCustomerMethod(1));”时它返回空值。如您所见,您的数组在索引 1 处为空。

关于java - 在 Java 中将对象分配给数组,它返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15660837/

相关文章:

java - 有关 BottomSheetDialog 可见性的问题

java - HTTP 状态 500 - Servlet 执行引发异常 (java.lang.ClassNotFoundException)

java - 空白ST : deleting node with 2 children in Java

java - 如何在本地使用外部库?

java - 在JAVA中按日期和数字对二维字符串数组进行排序?

java - 在run方法中,如何找到start是从哪里调用的?

java - Bean 验证和 JAX-WS

Java volatile 修饰符和同步块(synchronized block)

java - 检查一个整数数组中是否有两个相同的元素

java - Maven 项目中的 MapStruct 依赖范围