我在URL中傳遞一些參數,然後將它們添加到列表中。我的列表有5個元素的限制。因此,如果有人在URL中添加第六個元素,則該列表將簡單地忽略它。所以我試圖使用一個計數器,但邏輯不按需要工作。我正在使用While
循環來實現此目的。因此,如果列表大小小於5,則設置agencyCds,否則返回列表。在java中使用While循環計算列表的元素
private List<IUiIntegrationDto> generateViewIntegrationReportData(ESignatureIntegrationConfig eSignConfig) throws Exception {
int counter = 1;
if(eSignConfig.getAdditionalAgencyCds() != null) {
List<String> combinedAgencyCds = new ArrayList<String>();
for(String agencyCd : eSignConfig.getAgencyCd()) {
combinedAgencyCds.add(agencyCd);
}
StringTokenizer token = new StringTokenizer(eSignConfig.getAdditionalAgencyCds().toString(), StringConstants.COMMA);
while(token.hasMoreTokens()) {
combinedAgencyCds.add(token.nextToken());
}
while(combinedAgencyCds.size() < 5) {
counter = counter + 1;
eSignConfig.setAgencyCd(combinedAgencyCds);
}
// eSignConfig.setAgencyCd(combinedAgencyCds);
}
List<IUiIntegrationDto> intgList = getUiIntegrationManager().retrieveUiIntegrationReportData(eSignConfig.getAgencyCd(), eSignConfig.getCreatedDays(),
eSignConfig.getLob(), eSignConfig.getTransactionStatus(), eSignConfig.getAccounts(), eSignConfig.getSortKey(), eSignConfig.getSortOrder());
return intgList;
}
我不完全確定這個邏輯,如果它是正確的或者如果有更好的方法。
謝謝
你肯定當你調用eSignConfig.setAgencyCd(該combinedAgencyCds名單減少)?如果沒有,那麼你第二次while循環將是無限的。另外,什麼是計數器用於? – mdewit
是啊,這是我在調試時發現的。我現在正在使用條件。如果(combinedAgencyCds.size()<5)\t \t \t counter = counter + 1; – Jaykumar
if(combinedAgencyCds.size()<5) \t \t \t \t eSignConfig.setAgencyCd(combinedAgencyCds); \t \t \t} – Jaykumar