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