【问题标题】:Spring context.xml and Set.contains()Spring context.xml 和 Set.contains()
【发布时间】:2010-09-30 21:43:45
【问题描述】:

Spring:在我的 context.xml 中,我有:

<util:set id="someIDs" 
      set-class="java.util.HashSet"
      value-type="java.lang.String">
         <value>"W000000001"</value>
         <value>"W000000003"</value>
         <value>"W000000009"</value>        
</util:set> 

在我的 Java bean 中,实现是:

private Set<String> someSet = 
              ComUtilities.uncheckedCast(getApplicationContext()
             .getBean("someIDs"));

boolean found = someSet.contains("W000000009");

avobe代码块执行后,发现是很诡异的假!怎么会?有什么建议/想法吗?非常感谢。

【问题讨论】:

    标签: java spring set contains


    【解决方案1】:

    在我的脑海中 - 我很确定 Spring 不需要对字符串数据使用双引号。因此,它可能会将这些字符串插入到地图中,并在开头和结尾使用实际的双引号字符。

    尝试检查

    boolean found = someSet.contains("\"W000000009\"");
    

    看看是不是这样。

    【讨论】:

      【解决方案2】:

      我认为这是因为您已经引用了 Spring 配置中的值,然后包含检查正在寻找未引用的字符串。用这个替换你的弹簧配置:

      <util:set id="someIDs" 
        set-class="java.util.HashSet"
            value-type="java.lang.String">
                   <value>W000000001</value>
                   <value>W000000003</value>
                   <value>W000000009</value>            
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-22
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 2013-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多