访问链表中的对象
Accessing Objects in an LinkedList
我正在尝试创建一个购物程序,其中 objects
为客户分配了一个客户编号(在创建时给出)。
Class 描述。
下面看到的两个 classes 是; Customer 和 CustomerFactory。 customer 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 的对象,但是您创建并添加到列表 Q
的 Customer
是在索引 0.
public void createCustomer(){
f.add(new Customer(1, null));
f.Q.get(0).getNumber();
}
最后但并非最不重要的一点是,阅读有关 封装 的内容,不要只是通过使它们成为 public 来访问其他 class 变量.
我正在尝试创建一个购物程序,其中 objects
为客户分配了一个客户编号(在创建时给出)。
Class 描述。
下面看到的两个 classes 是; Customer 和 CustomerFactory。 customer 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 的对象,但是您创建并添加到列表 Q
的 Customer
是在索引 0.
public void createCustomer(){
f.add(new Customer(1, null));
f.Q.get(0).getNumber();
}
最后但并非最不重要的一点是,阅读有关 封装 的内容,不要只是通过使它们成为 public 来访问其他 class 变量.