好的我很確定這不是一個乾淨的實現。填充不同大小的數組
我有一個數組,我必須根據傳入對象的屬性填充屬性。
我已經用一種相當髒的方式做了這件事,它回來咬我的屁股!
我們生病開始:
我有一個AccountsGRP[]
。我這兩種方法之間填充:
public static AccountGrp[] popAccArr(IncomingObject incObject) {
ArrayList<AccountGrp> accAL = new ArrayList<AccountGrp>();
for (int i = 0; i < NoAccounts; i++) {
accAL.add(popAccAttr(i, incObject));
}
AccountGrp[] AccountGrpArr = (AccountGrp[]) accAL
.toArray(new AccountGrp[accAL.size()]);
return AccountGrpArr;
}
private static AccountGrp popAccAttr(int i, IncomingObject incObject) {
AccountGrp acc = new AccountGrpImpl();
switch (i) {
case 0:
acc.setAccount(incObject.getM_clientAcronym());
acc.setAccountType(AccountType.CUST);
acc.setAcctIDSource(AcctIDSource.SLANG);
acc.setGrandParentAccount(incObject.getM_grandparentNum());
return acc;
case 1:
acc.setAccount(incObject.getM_brokerAcronym());
acc.setAccountType(AccountType.BKR);
acc.setAcctIDSource(AcctIDSource.SLANG);
// acc.setGrandParentAccount(incObject.getM_grandparentNum());
return acc;
case 2:
acc.setAccount(incObject.getM_errorAccount());
acc.setAccountType(AccountType.FIRM);
acc.setAcctIDSource(AcctIDSource.SLANG);
acc.setAccountSubType(AccountSubType.ERROR);
return acc;
default:
acc.setAccount(incObject.getM_clientAcronym());
acc.setAccountType(AccountType.CUST);
acc.setAcctIDSource(AcctIDSource.SLANG);
acc.setGrandParentAccount(incObject.getM_grandparentNum());
return acc;
}
}
這是壞的編碼然而,我需要填充一些不同類型的賬戶,這樣這個case語句是不靈活和骯髒。有沒有這個我正在考慮的合適的實施。只是寫的方法與許多參數需要在相關的值,然而,問題的出現喜歡:
acc.setAccountType(AccountType.BKR);
acc.setAcctIDSource(AcctIDSource.SLANG);
哪些是返回枚舉。也不是每個帳戶迭代填充所有屬性是否有一種方法來獲得可選參數或者它只是一個重載的情況?
啊,ol'For-case結構(http://thedailywtf.com/Articles/The_FOR-CASE_paradigm.aspx)!當彈出時總是一個經典的;) –