2017-05-07 52 views
-2

我試圖通客戶數據到一個表。但是,在編寫此私有方法時,我不斷收到上面的錯誤消息。我對Java相當陌生。任何幫助?「陣列維度缺失,預計‘;’」

private void addCustomerToTable(Customer customer){ 
    DefaultTableModel model = (DefaultTableModel) accountTable.getModel(); 
    model.setRowCount(model.getRowCount()+1); 
    model.addRow(new Object[] (customer.getFirstName(), 
    customer.getLastName(), customer.getAccount().getAccountNumber(), 
    customer.getAccount().getBalance())); 

} 
+3

'新的對象[] { customer.getFirstName(), customer.getLastName(),customer.getAccount()。getAccountNumber(), customer.getAccount()。所以getBalance()}' – Eran

+0

請注意@Eran的評論中使用括號而不是括號。 –

回答

2

數組對象需要用花括號{}來定義/括起來,而不是括號()

例如:

new Object[] { 1, 2, 3 }; 

所以你的情況的代碼應該是:

private void addCustomerToTable(Customer customer) { 
    DefaultTableModel model = (DefaultTableModel) accountTable.getModel(); 
    model.setRowCount(model.getRowCount() + 1); 
    model.addRow(new Object[] { 
     customer.getFirstName(), 
      customer.getLastName(), customer.getAccount().getAccountNumber(), 
      customer.getAccount().getBalance() 
    }); 
} 

要了解更多關於陣列在Java中,請參閱:https://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html

+0

這有幫助。謝謝 ! – KADProgramme

2

(我將在稍後正確格式的代碼。Eclipse是需要很長時間才能啓動。我會刪除這條線爲好,很快)

當您創建一個數組並立即填充它,你需要花括號。 例如,如果我創建的雙數組,我希望它包含值1,2,3,4,5,我會做這樣的:

double[] array = new double[]{1.0,2.0,3.0,4.0,5.0};//Notice: I didn't specify the length of the array. 

現在,您的具體情況你需要:

model.addRow(new Object[] { 
     customer.getFirstName(), 
     customer.getLastName(), 
     customer.getAccount().getAccountNumber(), 
     customer.getAccount().getBalance() 
     }); 

Java將創建一個數組的長度等於給定值的數量(在你的情況4)。

javadoc

或者,也可以使用快捷語法來創建並初始化一個數組:

int[] anArray = { 
    100, 200, 300, 
    400, 500, 600, 
    700, 800, 900, 1000 }; 

在這裏,陣列的長度由提供的值的數目來確定括號和由 逗號分隔之間。