我创建了一个地图,然后将其包装为ObservableMap。稍后,我尝试访问原始的,未打开的地图,但我似乎无法访问它。它似乎回来了。
private def _swarms = [:]
private def swarms = new ObservableMap(_swarms)
...
def orig = swarms.content // returns null
orig = swarms.mapDelegate // returns null
我在http://groovy.codehaus.org/api/groovy/util/ObservableMap.html看不到任何看起来很有希望的东西。
答案 0 :(得分:2)
在property
界面的情况下,我们无法将field
引用为Map
。它会尝试查找具有该名称的key
,如果null
对不存在,则会返回key<->value
。试试这个:
def _swarms = [ a : 1 ]
def swarms = new ObservableMap( _swarms )
assert swarms.getContent() == [ a : 1 ]
assert swarms.getMapDelegate() == [ a : 1 ]
// Similar anomaly
assert !swarms.class
assert swarms.getClass().simpleName == "ObservableMap"
同样,您无法在.class
上使用Map
。相反,必须使用getClass()
。