質問

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top