当前位置: 首页 > 知识库问答 >
问题:

如何检查列表以查看元素是否存在?[重复]

饶德本
2023-03-14

我有一个简单的核心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;
}

谢谢

共有3个答案

伯彦君
2023-03-14

在第二个if中,您询问字符串数组中是否存储了一个列表。那不行。你应该做一个。包含要查找的每个值的

徐秋月
2023-03-14

因此,如果代码是ES03或ES04或其中任何一个,我希望填充emailValidationMessage变量,但它不这样做。

你不应该做一些类似于:

if( messageCodes.contains("ES03") || messageCodes.contains("ES04")) { 
      emailValidationMessage = "whatever your value should be";
}
张丰
2023-03-14

更改包含表达式:

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( !Collections.disjoint(messageCodes,Arrays.asList( "ES02", "ES03", "ES04", "EE02", "EE03", "EE04" ) ) ) {
    emailValidationMessage = UiIntegrationKeyConstants.EMAIL_VALIDATION_ERROR_MESSAGE;
} else {
    emailValidationMessage = UiIntegrationKeyConstants.EMAIL_VALIDATION_MESSAGE;
}

集合。不相交的充当“包含任何”比较。这样,如果存在一个或多个错误代码,它将进入if子句。

 类似资料:
  • 问题内容: 如果该元素是通过方法创建的,如何检查该元素是否存在? 对我不起作用。 问题答案: 对我不起作用。 您需要在元素ID之前添加: 使用香草JavaScript,不需要例如hash(),但是使用jQuery时,确实需要像基于CSS一样将哈希放入目标元素。

  • 问题内容: 示例:我正在检查是否存在像这样的数组元素: 但是,我不断收到此错误: 当然,我第一次想要实例时,$ instances不会知道密钥。我想我对可用实例的检查是错误的? 问题答案: 您可以使用语言构造或函数。 应该更快一些 (因为它不是函数) ,但是如果元素存在并且具有value,则将返回false 。 例如,考虑以下数组: 和这三个测试,依赖于: 第一个会得到您( 该元素存在,并且不为n

  • 我有一个js对象,如下所示。 我现在的代码是。 我的问题是我的代码可以有的值,但是如果在这种情况下我做了然后我就得到了现实。 如何确保我的数据具有和,以及可以具有值。 jsfiddle:https://jsfiddle.net/3jo7vx4p/ 我们衷心感谢您的帮助。

  • 问题内容: 我现在用来检查此功能的函数如下: 有用。我正在寻找的是是否有更好的方法来做到这一点。 问题答案: ECMAScript 2016 包含一种专门用于解决问题的数组方法,因此现在是首选方法。 _从2018年7月开始,如果您需要支持IE,则可以在polyfill中使用几乎所有 主流 浏览器。 编辑:请注意,如果数组中的项目是一个对象,则返回false。这是因为相似的对象是JavaScript

  • 问题内容: 我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。 现在,我有这样的东西: 但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西? 问题答案: 有几种选择。我推荐这些。 1.创建方法或Web驱动程序扩展。 2.计算元素,如果有1个或更多元素,则获取它。 那你可以检查

  • 问题内容: 我有一个问题-我正在使用Selenium(firefox)Web驱动程序打开网页,单击一些链接等,然后捕获屏幕截图。 我的脚本可以从CLI正常运行,但是通过cronjob运行时,它并没有通过第一个find_element()测试。我需要添加一些调试,或一些帮助我弄清为什么失败的东西。 基本上,我必须先单击“登录”锚点,然后才能进入登录页面。元素的构造为: 我正在通过LINK_TEXT方