Domanda

Primavera: nel mio context.xml, ho:

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

Nel mio bean Java, l'implementazione è:

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

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

Dopo l'esecuzione del blocco di codice avobe, found è stranamente falso! Come mai? Qualche suggerimento / idea? Grazie mille.

È stato utile?

Soluzione

In cima alla mia testa - Sono abbastanza sicuro che Spring non abbia bisogno di doppie virgolette per i dati String. Quindi probabilmente sta inserendo quelle stringhe nella mappa con caratteri a virgoletta reale all'inizio e alla fine.

Prova a controllare

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

per vedere se questo è il caso.

Altri suggerimenti

Penso che sia perché hai citato i valori nella configurazione Spring e quindi il controllo del contenuto sta cercando una stringa non quotata. Sostituisci la tua configurazione di primavera con questa:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top