我有一個簡單的核心java問題。我有一個包含多個響應代碼的列表。我將根據列表中的響應代碼返回消息。對於其中一個場景,我必須檢查列表是否包含任何一個響應代碼。我已經通過以下方式完成了它,但它忽略了它,代碼轉到了else塊。因此,如果代碼是ES03或ES04或其中任何一個,我想填充emailValidationMessage變量,但它不會這樣做。如何檢查列表以查看元素是否存在?
List<String> messageCodes = this.getEmailValidationCode(eSignatureInTO);
if(messageCodes.contains("ES01")) {
IESignatureIntegrationOutDto eSignatureOutTO = getEsignService().resendDocuments(eSignatureInTO);
eSignatureInTO.setResendDocs(eSignatureOutTO.isResendDocs());
} else if(messageCodes.contains("EE01")) {
emailValidationMessage = UiIntegrationKeyConstants.EMAIL_FORMAT_ERROR_MESSAGE;
} else if(messageCodes.contains(Arrays.asList("ES02", "ES03", "ES04", "EE02", "EE03", "EE04"))) {
emailValidationMessage = UiIntegrationKeyConstants.EMAIL_VALIDATION_ERROR_MESSAGE;
} else {
emailValidationMessage = UiIntegrationKeyConstants.EMAIL_VALIDATION_MESSAGE;
}
謝謝...
它以我想要的方式工作。非常感謝。代碼看起來很不錯並且很乾淨。 – Mike
但效率不高。每次測試運行時,它會創建一個新的'Arrays.asList()'。 'private final static'字段應該用於存儲'disjoint()'的參數。另外,參數應該是一個'Set',而不是'List'來加速'disjoint'檢查。對於這個問題,'Set'對於'messageCodes'也是一個更好的類型,出於同樣的原因。 –
AJNeufeld