对象和数组列表
因此,我不会描述我所尝试过的,我只是简单地列出我正在尝试做的事情,因为迄今为止,每种方法都失败了,而且我相信这是我错过的简单东西。对象和数组列表
我需要做的是创建一个对象数组。无论是持有对象的数组列表还是持有对象的对象数组,我都不在乎。
我必须做一个银行业务程序,我有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?
}
任何帮助赞赏或替代方法。
你有一些问题,我可以在这里指出:
- 您继续使用相同的
Object[]
,每次插入之前,你应该创建一个新Object[]
- 否则你将覆盖现有的数据。 [请记住,ArrayList
包含引用,如果您修改其中的对象,它也将在ArrayList
中进行修改。 - 你需要投
temp
到Object[]
- 甚至更好,声明AccountList
为ArrayList<Object[]>
- 这一切完成后 - 它应该是
toString()
,而不是toString
[它是一种方法]
不相关,但对可读性很重要:在java中,约定是变量以小写字符开始。它可以帮助其他程序员理解,当读取accountList
而不是AccountList
它是一个变量,而不是一个类。
而且,@GuillaumePolet提到的,你可能要重新考虑,而不是使用Object[]
的德兴,并将其存储在ArrayList
,你可以建立自己的类[MyBankAccount
的实例]与8场,并有AccountList
类型ArrayList<MyBankAccount>
。你会发现遵循逻辑并以这种方式维护你的代码要容易得多!
是的,也是在相同的不相关的,但它会有所帮助,Java是一种面向对象的语言,所以不用Object []来建模对象,你实际上可以用这8个属性创建一个新类,那会更好 – 2012-03-14 17:11:10
@GuillaumePolet:我同意,我专注于找出错误,并没有提到设计问题。但是,C不是OO语言,我会通过创建'struct' :)来遵循这条线。我编辑了答案并添加了这个问题。谢谢。 – amit 2012-03-14 17:17:10
为什么你需要'静态'? – 2012-03-14 17:04:03