2011-09-18 81 views
0

访问地图中的地图与闭合, 我有一个Map对象的值是另一个地图对象 如: - `写DSL地图里面的地图与封闭常规,

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

如果你说你想要dsl做什么,它可能会更容易回答。 –

回答

0

下面是打印内部地图的键和值的说明。试试这个:

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}" 
    } 
} 
+0

这是对原始问题的回答,在写作时这个问题发生了很大的变化。现在是关于DSL的问题。 –

+0

感谢Michalel对dsl的任何线索 – anish

0

阿尼什,我想你寻找一个较短的方式来访问地图,这将是map2.map1。然后你可以使用map2.map1.name来获得“Gromit”。如果更短的方式获得地图不是你的问题,那么请指定更多。