我正在嘗試創建一個購物程式,其中為客戶objects分配了一個客戶編號(在創建時給出)。
類說明。下面看到的兩個類是;客戶和客戶工廠。客戶類用于創建客戶 ( objects) 并為他們分配一個單獨的客戶編號 ( customerNumber )。CustomerFactory負責創建客戶并將它們放入一個陣列中。
問題。當我嘗試使用位于 Customer 類中的getNumber方法從各個客戶檢索customerNumber時出現。它導致錯誤:,在第 7 行:“.getNumber”。我需要能夠獲取客戶編號,以便稍后將它們顯示為輸出。Cannot resolve method 'getNumber' in 'Object'
CustomerFactory 類:
1 public class CustomerFactory {
2
3 FIFO f = new FIFO();
4
5 public void createCustomer(){
6 f.add(new Customer(1, null));
7 f.Q.get(1).getNumber();
8
9 }
10 }
客戶類:
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 }
ArrayList(取自名為 FIFO 的類):
LinkedList<Object> Q = new LinkedList<Object>();
如果對我如何解決這個問題或其他任何你認為更有效的建議有任何建議,請 lmk。
預先感謝!
uj5u.com熱心網友回復:
首先,您將其轉換LinkedList為包含Objectnot的串列Customer(也不確定,為什么要使用 LinkedList,但是可以)。
LinkedList<Customer> Q = new LinkedList<>();
然后您可能會得到NullPointerException,因為您正在嘗試訪問此串列中索引為 1 的物件,但Customer您創建并添加到串列Q中的物件位于索引0上。
public void createCustomer(){
f.add(new Customer(1, null));
f.Q.get(0).getNumber();
}
最后但并非最不重要的一點是,閱讀有關Encapsulation的資訊,不要只是通過將它們設為public來訪問其他類變數。
uj5u.com熱心網友回復:
您的 LinkedList 不應該是 type Object,它應該具有泛型型別Customer
LinkedList<Customer> Q = new LinkedList<>();
我建議您閱讀一些有關 Java 中的泛型的內容,它將幫助您了解如何更好地處理它
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436780.html
