J'ai une question simple de base de Java. J'ai une liste qui porte plusieurs codes de réponse. Je renvoie des messages basés sur les codes de réponse dans ma liste. Pour l'un des scénarios, je dois vérifier si la liste contient l'un des codes de réponse. Je l'ai fait les manières suivantes mais il l'ignore et les codes vont à l'autre bloc. Donc, si le code est ES03 ou ES04 ou l'un d'entre eux, je veux remplir la variable emailValidationMessage mais il ne le fait pas.Comment vérifier une liste pour voir si un élément existe ou pas?
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;
}
... Merci
Ça a marché comme je le voulais. Merci beaucoup. Le code est joli et propre de cette façon. – Mike
Mais pas efficace. Il crée un nouveau 'Arrays.asList()' chaque fois que le test est exécuté. Un champ 'private final static' devrait être utilisé pour stocker l'argument de' disjoint() '. En outre, l'argument devrait être un 'Set', pas un' List' pour accélérer le contrôle 'disjoint'. Pour cette raison, "Set" serait aussi un meilleur type pour 'messageCodes', pour la même raison. –
AJNeufeld