有没有办法实例化map
lazy的值?
例如
class MapTest {
@Lazy(soft = true) HashMap<String, List<String>> map
}
这样做我可以使用此致电并获取null
而无需接收NullPointerException
new MapTest().map.key1
但是试图打电话
map.key1.remove(1)
由于NullPointerException
为value
,将导致null
。 (如果它抛出IndexOutOfBounds
异常,那就没关系了)
有没有办法实例化地图的list
值?
答案 0 :(得分:3)
尝试map.withDefault
:
def map = [:].withDefault { [] }
assert map.key1.isEmpty()
一些解释:
withDefault
是地图上的一种常规方法。每次请求键初始化值(如果它不存在)时,都会调用此闭包。这个闭包取一个参数(键),值应该是查看其他示例here