Spring context.xml и Set.contains () - PullRequest
1 голос
/ 12 января 2009

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-бине реализация:

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

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

После выполнения блока кода avobe найдено очень странно ложно! Как так? Любое предложение / идея? Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 12 января 2009

От макушки головы - я почти уверен, что Spring не требует двойных кавычек для данных String. Так что, вероятно, эти строки вставляются в карту с реальными символами в двойных кавычках в начале и конце.

Попробуйте проверить

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

чтобы узнать, так ли это.

2 голосов
/ 12 января 2009

Я думаю, это потому, что вы указали значения в конфигурации Spring, а затем проверка содержимого ищет строку без кавычек. Замените ваш весенний конфиг следующим:

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

...