Frühling context.xml und Set.contains ()
Frage
Frühling: In meinem context.xml, ich habe:
<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>
In meinem Java-Bean, die Umsetzung ist:
private Set<String> someSet =
ComUtilities.uncheckedCast(getApplicationContext()
.getBean("someIDs"));
boolean found = someSet.contains("W000000009");
Nach der Ausführung des avobe Codeblock, zu finden ist sehr seltsam falsch! Woher? Jede Anregung / Idee? Dank einem Haufen.
Lösung
Aus der Spitze von meinem Kopf - ich bin mir ziemlich sicher, dass Frühling erfordert keine doppelten Anführungszeichen für String-Daten. So ist es wahrscheinlich diese Zeichenfolge in die Karte mit dem tatsächlichen doppelten Anführungszeichen am Anfang und am Ende eingefügt wird.
Versuchen Überprüfung
boolean found = someSet.contains("\"W000000009\"");
, um zu sehen, ob dies der Fall ist.
Andere Tipps
Ich denke, es ist, weil Sie die Werte in der Frühlings-Config zitiert habe und enthält dann die Prüfung für einen String ohne Anführungszeichen sucht. Ersetzen Sie springen Config mit diesem:
<util:set id="someIDs"
set-class="java.util.HashSet"
value-type="java.lang.String">
<value>W000000001</value>
<value>W000000003</value>
<value>W000000009</value>