문제

봄 : 내 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 코드 블록을 실행 한 후 발견 된 것은 매우 이상하게 거짓입니다! 어떻게 되나요? 제안/아이디어가 있습니까? 무리 감사.

도움이 되었습니까?

해결책

내 머리 꼭대기에서 - 스프링이 문자열 데이터에 대한 이중 인용문이 필요하지 않다고 확신합니다. 따라서 시작과 끝에서 실제 이중 쿼트 문자로 문자열을지도에 삽입 할 수 있습니다.

확인해보십시오

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

이것이 사실인지 확인합니다.

다른 팁

스프링 구성에서 값을 인용 한 다음 포함 된 검사가 인용되지 않은 문자열을 찾고 있기 때문이라고 생각합니다. 스프링 구성을 다음과 같이 대체하십시오.

<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