2009-01-12 5 views
1

printemps: Dans mon context.xml, j'ai:Spring context.xml et Set.contains()

<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> 

Dans mon grain de Java, la mise en œuvre est la suivante:

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

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

Après l'exécution du bloc de code avobe, trouvé est très bizarrement faux! Comment venir? Toute suggestion/idée? Merci beaucoup.

Répondre

4

Je ne suis pas certain que Spring ne nécessite pas de guillemets doubles pour les données String. Il est donc probable que ces chaînes soient insérées dans la carte avec des guillemets doubles au début et à la fin.

Essayez de vérifier

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

pour voir si tel est le cas.

2

Je pense que c'est parce que vous avez cité les valeurs dans la configuration de Spring, puis que la vérification de contenu recherche une chaîne sans guillemets. Vous remplaciez printemps config avec ceci:

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

Questions connexes