访问链表中的对象

Accessing Objects in an LinkedList

我正在尝试创建一个购物程序,其中 objects 为客户分配了一个客户编号(在创建时给出)。

Class 描述。 下面看到的两个 classes 是; CustomerCustomerFactorycustomer class 用于创建客户 (objects) 并为他们分配一个单独的客户编号 (customerNumber). CustomerFactory 负责创建客户并将其放入数组中。

问题。 当我尝试使用位于客户 class 中的 getNumber 方法从各个客户检索 customerNumber 时出现。它导致错误:Cannot resolve method 'getNumber' in 'Object',第 7 行:“.getNumber”。我需要能够获取客户编号,以便稍后将它们显示为输出。

CustomerFactory class:

1  public class CustomerFactory {
2
3     FIFO f = new FIFO();
4
5     public void createCustomer(){
6        f.add(new Customer(1));
7        f.Q.get(1).getNumber();
8
9     }  
10 }

客户class:

1 public class Customer {
2
3    public int customerNumber;
4
5    public Customer(int customerNumber){
6        this.customerNumber = customerNumber;
7
8    }
9
10    public int getNumber(){
11        return this.customerNumber;
12
13    }
14 }

先进先出class:

public class FIFO {

    LinkedList<Customer> Q = new LinkedList<Customer>();

    public Object get(int number){
        return Q.get(number);
    }

    public void add(Customer o){
        Q.add(o);
    }

}

如果有任何关于我如何使这个问题或任何其他你认为更有效的建议,lmk。

谢谢!

您的 LinkedList 不应为 Object 类型,它应具有 Customer

的泛型类型
LinkedList<Customer> Q = new LinkedList<>();

我建议您在 Java 中阅读一些关于泛型的内容,这将帮助您更好地理解如何处理它

首先,您将 LinkedList 转换为包含 Object 而不是 Customer 的列表(也不确定,为什么要使用 LinkedList,但是没问题)。

LinkedList<Customer> Q = new LinkedList<>();

那么您可能会得到 NullPointerException,因为您正试图访问此列表中索引为 1 的对象,但是您创建并添加到列表 QCustomer 是在索引 0.

public void createCustomer(){
    f.add(new Customer(1, null));
    f.Q.get(0).getNumber();
}

最后但并非最不重要的一点是,阅读有关 封装 的内容,不要只是通过使它们成为 public 来访问其他 class 变量.