хорошо, я уверен, что это не чистая реализация.
У меня есть массив с атрибутами, которые я должен заполнить в зависимости от атрибутов входящего объекта.
Я сделал это довольно грязно, и он вернулся, чтобы укусить меня за задницу!
мы начнем:
У меня есть 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;
}
}
Это плохое кодирование. Мне, однако, нужно заполнить несколько разных типов учетных записей, так что это утверждение случая негибкое и грязное. Есть ли подходящая реализация к этому, которую я рассматривал. Просто написание метода с несколькими параметрами для получения соответствующих значений, однако проблема возникает с такими словами:
acc.setAccountType(AccountType.BKR);
acc.setAcctIDSource(AcctIDSource.SLANG);
Которые возвращают перечисления. также не каждая итерация учетной записи заполняет все атрибуты, есть ли способ получить необязательные параметры или это просто случай перегрузки?