2012-03-14 58 views
0

因此,我不會描述我所嘗試過的,我只是簡單地列出我正在嘗試做的事情,因爲迄今爲止,每種方法都失敗了,而且我相信這是我錯過的簡單東西。對象和數組列表

我需要做的是創建一個對象數組。無論是持有對象的數組列表還是持有對象的對象數組,我都不在乎。

我必須做一個銀行業務程序,我有8個數據字段,每個集合組成一個賬戶,因此是一個對象。我首先將所有8個數據字段添加到一個對象中,然後將該對象添加到數組列表或對象數組中。

我的問題是,當我試圖回憶一個特定的帳戶。假設我調用arraylist或object數組,當我嘗試調用其中任何一個的原始對象時,它們是空的或不兼容的。這就好像數據剛剛變得一團糟。

這是我必須幫助解釋的一些代碼。

static ArrayList AccountList = new ArrayList(); 
    static Object[] User = new Object[8]; 

,我將數據添加到目標用戶

type = AddAccount.jComboBox1.getSelectedItem().toString(); 
    User[0] = type; 
    number = AddAccount.jTextField1.getText(); 
    User[1] = number; 
    owner = AddAccount.jTextField2.getText(); 
    User[2] = owner; 
    date = AddAccount.jTextField3.getText(); 
    User[3] = date; 
    balance = AddAccount.jTextField4.getText(); 
    User[4] = balance; 
    fee = AddAccount.jTextField5.getText(); 
    User[5] = fee; 
    rate = AddAccount.jTextField6.getText(); 
    User[6] = rate; 
    minBalance = AddAccount.jTextField7.getText(); 
    User[7] = minBalance; 
     AccountList.add(counter,User); 
    counter++; 

我撥打以下時,我想數據,INT選擇只是指該對象我想

public static void displayData(int selection) { 
      int row = selection; 
      Object temp = AccountList.get(selection); 
      System.out.println(temp[0].toString); //<--WHY WONT THAT WORK? 

     } 

任何幫助讚賞或替代方法。

+1

爲什麼你需要'靜態'? – 2012-03-14 17:04:03

回答

4

你有一些問題,我可以在這裏指出:

  1. 您繼續使用相同的Object[],每次插入之前,你應該創建一個新Object[] - 否則你將覆蓋現有的數據。 [請記住,ArrayList包含引用,如果您修改其中的對象,它也將在ArrayList中進行修改。
  2. 你需要投tempObject[] - 甚至更好,聲明AccountListArrayList<Object[]>
  3. 這一切完成後 - 它應該是toString(),而不是toString [它是一種方法]

不相關,但對可讀性很重要:在java中,約定是變量以小寫字符開始。它可以幫助其他程序員理解,當讀取accountList而不是AccountList它是一個變量,而不是一個類。

而且,@GuillaumePolet提到的,你可能要重新考慮,而不是使用Object[]的德興,並將其存儲在ArrayList,你可以建立自己的類[MyBankAccount的實例]與8場,並有AccountList類型ArrayList<MyBankAccount>。你會發現遵循邏輯並以這種方式維護你的代碼要容易得多!

+0

是的,也是在相同的不相關的,但它會有所幫助,Java是一種面向對象的語言,所以不用Object []來建模對象,你實際上可以用這8個屬性創建一個新類,那會更好 – 2012-03-14 17:11:10

+0

@GuillaumePolet:我同意,我專注於找出錯誤,並沒有提到設計問題。但是,C不是OO語言,我會通過創建'struct' :)來遵循這條線。我編輯了答案並添加了這個問題。謝謝。 – amit 2012-03-14 17:17:10