1

さて、2 つの異なる .dat ファイルからデータを読み込む MonthlyReport というドライバー クラスがあります。1 つはアカウントに関する情報で、もう 1 つは顧客に関する情報です。私のドライバー クラスでは、アカウントと顧客に関する情報をそれぞれ格納するオブジェクトの 2 つの配列を作成します。問題は、顧客データを顧客クラスに送信した後、どのアカウントが各顧客に属しているかを特定する方法がわからず、顧客が誰であるかに基づいてアカウントの情報を変更できないことです。

基本的に、対応するアカウント オブジェクトにその顧客にアクセスしたいのですが、Customer クラスから MonthlyReport で作成されたオブジェクトにアクセスする方法がわかりません。これはどちらかというと概念的な問題であり、デザインの提案が必要なほどコードは必要ありません。質問への回答に役立つ場合は、コードの一部を追加できます。前もって感謝します。

  public class MonthlyReport() {
       public static void main(String args[]){

             //reading in account data here

             Account a = new Account(accountNumber, accountType, balance, openingDates, aprAdjustment, feeAdjustment);
             accounts[i]=a;

             //reading in customer data here

             Customer c = new Customer(customerID, firstName, lastName, mailingAddress, emailAddress, flag, accountNum);
             customers[i]= c;

        }
   }
4

2 に答える 2

2

両方の配列データ型を含むカスタム クラスを記述し、.dat ファイルからの情報をこの新しい型の配列に結合できます。

public class CustomerAccounts
{
    public Account[] Account {get; set;}
    public Customer Customer {get; set;}
}


public class MonthlyReport() {
   public static void main(String args[]){

         CustomerAccounts[] allData = new CustomerAccounts[totalCustomers];

         //Read in customers
         for (i = 0; i < totalCustomers; i++)
         {
               Customer c = new Customer(customerID, firstName, lastName, mailingAddress, emailAddress, flag, accountNum);
               CustomerAccounts customerAccount = new CustomerAccounts()'
               customerAccount.customer = c;
               allData [i] = customerAccount;

         }

         for (i = 0; i < totalAccounts; i++)
         {
              Account a = new Account(accountNumber, accountType, balance, openingDates, aprAdjustment, feeAdjustment);

              //Look up customer account belongs to to get index in all data array
              int index = lookupIndex();

              CustomerAccounts customerAccount = allData [index];
              int numberOfAccounts = customerAccount.accounts.count;
              allData [index].accounts[numberOfAccounts] = a;
         }
    }
于 2012-10-01T01:48:16.867 に答える
1

もう 1 つの問題は、それぞれCustomerが複数のアカウントを持つことができることです。

CustomerAccountdetailsの間に 1 対多の関係があると仮定すると、MonthlyReportへの参照を保持する必要がありMap<Customer, List<Account>> dataます。

補遺: 顧客ファイルを読み込んでCustomerインスタンスを に蓄積するとMapList<Account>最初は for each が空になります。同時に、それぞれCustomerを aに追加しMap<AccountNumber, Customer> indexます。後でアカウント ファイルを読みながら、 を使用して新しいアカウント レコードごとindexに を検索し、その顧客の に追加する必要があります。CustomerList<Account>

于 2012-10-01T01:55:41.047 に答える