написание карты DSL внутри карты с закрытием groovy, - PullRequest
0 голосов
/ 18 сентября 2011

Доступ к карте внутри карты с закрытием, У меня есть объект карты значения другой объект карты например:- `

 to access the data like this I can issue
def map = [name:"Gromit", likes:"cheese", id:1234]
def map2 =[map1:map]
map2.each{entry ->
    println entry.key
    entry.value.each {entry1 ->  println  entry1.key
        println entry1.value
    }
}


to access a single map i can issue 
    map.each{entry ->
        println entry.key
        println entry.value
    }

'

Как я могу написать DSL для приведенного выше примера карты простым подсказкой?

Ответы [ 2 ]

0 голосов
/ 01 октября 2011

аниш, я полагаю, вы ищете более короткий способ доступа к карте, это будет map2.map1. Затем вы можете использовать map2.map1.name, чтобы получить "Gromit". Если более короткий способ получить карту не был вашим вопросом, то, пожалуйста, укажите больше.

0 голосов
/ 18 сентября 2011

Вот иллюстрация печати ключей и значений внутренней карты. Попробуйте это:

map1=new HashMap()
map2=new HashMap()
map2.put("1","one")
map1.put("map2",map2) 

map1.each{ entry1 ->
    def innerMap = entry1.value
    innerMap.each { entry2 ->
        println "key is ${entry2.key}"
        println "value is ${entry2.value}"
    }
}
...