1

春: 私の 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");

abobe コード ブロックの実行後、found は非常に奇妙に false です。どうして?提案/アイデアはありますか?本当にありがとう。

4

2 に答える 2

4

頭のてっぺんから-Springは文字列データに二重引用符を必要としないと確信しています。したがって、これらの文字列は、最初と最後に実際の二重引用符を使用してマップに挿入されている可能性があります。

確認してみてください

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

これが当てはまるかどうかを確認します。

于 2009-01-12T10:28:33.547 に答える
2

これは、Spring 構成で値を引用した後、含むチェックが引用符で囲まれていない文字列を探しているためだと思います。春の設定を次のように置き換えます。

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

于 2009-01-12T10:29:19.910 に答える