用 ObservableMap 包装后如何访问原始地图?
How can I access the original map after wrapping it with ObservableMap?
我创建了一个地图,然后将其包装为 ObservableMap。后来,我尝试访问原始的、未包装的地图,但我似乎无法访问它。好像返回null。
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 没有看到任何看起来很有希望的东西。
在 Map
接口的情况下,我们不能将 property
引用为 field
。它将尝试寻找具有该名称的 key
,如果 key<->value
对不存在,它将尝试 return null
。试试这个:
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"
同样,您不能在 Map
上使用 .class
。相反,必须使用 getClass()
。
我创建了一个地图,然后将其包装为 ObservableMap。后来,我尝试访问原始的、未包装的地图,但我似乎无法访问它。好像返回null。
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 没有看到任何看起来很有希望的东西。
在 Map
接口的情况下,我们不能将 property
引用为 field
。它将尝试寻找具有该名称的 key
,如果 key<->value
对不存在,它将尝试 return null
。试试这个:
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"
同样,您不能在 Map
上使用 .class
。相反,必须使用 getClass()
。