Spring context.xmlおよびSet.contains()
質問
春:私の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 Beanでは、実装は次のとおりです。
private Set<String> someSet =
ComUtilities.uncheckedCast(getApplicationContext()
.getBean("someIDs"));
boolean found = someSet.contains("W000000009");
avobeコードブロックの実行後、foundは非常に奇妙な偽です!どうして?提案/アイデアはありますか?たくさんありがとう。
解決
私の頭上から-私は、Springが文字列データに二重引用符を必要としないことを確信しています。したがって、おそらく、それらの文字列をマップに挿入し、実際の二重引用符文字を先頭と末尾に挿入します。
チェックしてみてください
boolean found = someSet.contains("\"W000000009\"");
これが当てはまるかどうかを確認します。
他のヒント
Spring configで値を引用し、包含チェックが引用されていない文字列を探しているためだと思います。あなたの春の設定をこれで置き換えます:
<util:set id="someIDs"
set-class="java.util.HashSet"
value-type="java.lang.String">
<value>W000000001</value>
<value>W000000003</value>
<value>W000000009</value>
所属していません StackOverflow