Вопрос

Весна:В моем 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 найдено очень странное ложное значение!Почему?Любое предложение/идея?Огромное спасибо.

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top