2012-06-07 1 views
1

나는 몇 가지 속성을 가진 다음지도는 템플릿에서 템플릿

Map<String,String> attributes = new HashMap<String,String>(); 
attributes.put("attr1.val","foo"); 
attributes.put("attr2.val","bar"); 

에 사용되는 한 attr1에. 점 ($attr1\.val$)을 이스케이프 처리하는 것도 효과가없는 것으로 보입니다. 설명서는 이것이 가능한지 또는 가능한지에 대한 단서를 제공하지 않는 것 같습니다.

구분 기호를 점 대신 변경해야합니까?

+0

해당 구분이 필요합니까? 맵의 개념은 키 - 값 구조입니다. 나는 당신의 열쇠에서 ".val"의 목적을 보지 못했지만 그것이 제한인지 궁금해하고 있습니다. – Gamb

+0

키 값 맵이 중첩 된 구조에서 생성됩니다. 중첩은 키 이름에 분리 문자를 사용하여 유지됩니다. – kldavis4

답변

3

Difficult Property Names 적용되는 설명서에 반짝이기는 :

일부 속성 이름 때문에 키워드에 내장하거나 ID에 대한 규칙과 일치하지 않기 때문에 문자열 템플릿으로 사용하여 충돌의 구문 분석 오류의 원인. 이 어려운 속성 이름은 간접 속성 구조와 함께 속성 이름을 인용하여 처리 할 수 ​​있습니다.

$ 사람 ("첫 번째") $을 --- 키워드에

$ 사람 빌드 ("1. ") $ --- 비 ID 기증자 이름

지도를 처리 할 때 어려운 속성 이름이 발생할 가능성이 큽니다. 맵 키는 정의 된 템플릿 자체에 사용되는 공백 및 구문 문자를 포함하여 임의의 문자열을 사용하여 정의 할 수 있습니다.

0

구분 기호를 변경하는 것이 가장 쉽다고 생각합니다. StringTemplate에는 $ 내부에 이스케이프 메커니즘이 없습니다.

관련 문제