2011-09-18 41 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」。如果更短的方式獲得地圖不是你的問題,那麼請指定更多。