1

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代码块执行后,发现是很诡异的假!怎么会?有什么建议/想法吗?谢谢一堆。

4

2 回答 2

4

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

尝试检查

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

看看是不是这样。

于 2009-01-12T10:28:33.547 回答
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>            

于 2009-01-12T10:29:19.910 回答