"数组维度缺失,预期' ; ' "

时间:2017-05-07 10:12:17

标签: java arrays object private

我尝试将客户数据传递到表格中。但是,在编写此私有方法时,我一直收到上面的错误消息。我对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()));

}

2 个答案:

答案 0 :(得分:2)

(我稍后会正确格式化代码.Eclipse需要很长时间才能启动。我很快就会删除这一行。

当您创建数组并立即填充它时,您需要大括号。 例如,如果我创建一个double数组并且我希望它包含值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 }; 
     

这里数组的长度由大括号之间提供的值之间的数量决定   逗号。

答案 1 :(得分: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