2012-03-14 4 views
0

Чтобы не описать то, что я пробовал, я просто просто изложу то, что я пытаюсь сделать, поскольку каждый метод до сих пор подвел меня, и я уверен, что это что-то простое, что мне не хватает.Объекты и ArrayLists

Что мне нужно сделать, это сделать массив объектов. Является ли это arraylist, который содержит объекты, или массив объектов, который содержит объекты, которые мне не представляют.

Мне нужно сделать банковскую программу, у меня есть 8 полей данных, каждый набор составляет учетную запись и, следовательно, объект. Сначала я добавляю все 8 полей данных в объект, тогда я добавляю этот объект либо к арраисту, либо к массиву объектов.

Моя проблема, когда я пытаюсь вспомнить конкретную учетную запись. Предположим, я вызываю массив массивов или массивов объектов, когда я пытаюсь вызвать исходные объекты в любом из них, они пусты или несовместимы. Это почти так, как будто данные просто собираются вместе.

вот какой код я должен помочь объяснить.

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++; 

я называю следующее, когда я хочу данных, выбор ИНТ только со ссылкой на объект Я хочу

public static void displayData(int selection) { 
      int row = selection; 
      Object temp = AccountList.get(selection); 
      System.out.println(temp[0].toString); //<--WHY WONT THAT WORK? 

     } 

Любая помощь оцененных или альтернативных методов.

+1

Зачем вам «статичный»? –

ответ

4

У вас есть какие-то вопросы, я могу отметить здесь:

  1. Вы продолжайте использовать те же Object[], перед каждым введением следует создать новый Object[] - в противном случае вы отменяете существующие данные. [помните, что ArrayList содержит ссылки, если вы изменяете объект в нем, он будет изменен и в ArrayList.
  2. Вы должны бросить temp к Object[] - или даже лучше, объявить AccountList, как ArrayList<Object[]>
  3. После того как все это делается - она ​​должна быть toString(), а не toString [это метод]

Не связано, но важно для читаемости: в java соглашение состоит в том, что переменные начинаются с символов нижнего регистра. Это помогает коллегам-программистам понять при чтении accountList, а не AccountList, что это переменная, а не класс.

Кроме того, как уже упоминалось @GuillaumePolet, вы можете захотеть пересмотреть DESING, вместо того, чтобы использовать Object[], и хранить его в ArrayList, вы можете создать свой собственный класс [MyBankAccount для примеров] с 8 полей, и имеют AccountList типа ArrayList<MyBankAccount>. Вам будет намного легче следовать логике и поддерживать ваш код таким образом!

+0

Да, а также в том же не связанном, но это помогло бы, Java - язык OO, поэтому вместо моделирования объектов с Object [] вы могли бы создать новый класс с этими 8 свойствами, это было бы намного лучше –

+0

@GuillaumePolet: Я согласен, я был сосредоточен на поиске ошибок и не упоминал о проблеме дизайна.Однако C не является языком OO, и я все равно буду следовать этой строке, создав 'struct' :). Я отредактировал ответ и добавил этот вопрос. Благодарю. – amit

Смежные вопросы