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 코드 블록을 실행 한 후 발견 된 것은 매우 이상하게 거짓입니다! 어떻게 되나요? 제안/아이디어가 있습니까? 무리 감사.
해결책
내 머리 꼭대기에서 - 스프링이 문자열 데이터에 대한 이중 인용문이 필요하지 않다고 확신합니다. 따라서 시작과 끝에서 실제 이중 쿼트 문자로 문자열을지도에 삽입 할 수 있습니다.
확인해보십시오
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>
제휴하지 않습니다 StackOverflow