因此,不是描述我尝试过的内容,而是简单地列出我想要做的事情,因为到目前为止,每种方法都让我失望,而且我确信这是我想念的一些简单。
我需要做的是制作一个对象数组。它是一个保存对象的arraylist,还是一个保存对象的对象数组,我不在乎。
我必须制作一个银行业务程序,我有8个数据字段,每个集合组成一个帐户,因此是一个对象。我首先将所有8个数据字段添加到一个对象中,然后我将该对象添加到一个arraylist或一组对象。
我的问题是,当我尝试召回特定帐户时。假设我调用了arraylist或object数组,当我尝试调用其中任何一个中的原始对象时,它们都是空的或不兼容的。这几乎就好像数据刚刚融合在一起。
这里有一些我需要帮助解释的代码。
static ArrayList AccountList = new ArrayList();
static Object[] User = new Object[8];
我将数据添加到对象User
中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?
}
任何帮助,或其他方法。
答案 0 :(得分:4)
我有一些问题需要注意:
Object[]
,在每次插入之前,您应该创建一个新的Object[]
- 否则您将覆盖现有数据。 [记住,ArrayList
包含引用,如果修改其中的对象,它也将在ArrayList
中修改。temp
投射到Object[]
- 甚至更好,将AccountList
声明为ArrayList<Object[]>
toString()
,而不是toString
[这是一种方法] 不相关,但对可读性很重要:在java中,惯例是变量以小写字符开头。它可以帮助其他程序员在阅读accountList
而不是AccountList
时理解它是变量,而不是类。
另外,正如@GuillaumePolet所提到的,您可能想重新考虑设计,而不是使用Object[]
,并将其存储在ArrayList
中,您可以构建自己的类[{{1}例如,包含8个字段,并且MyBankAccount
类型为AccountList
。您会发现遵循逻辑并以这种方式维护代码要容易得多!