有没有办法实例化map
惰的值?
例如
class MapTest {
@Lazy(soft = true) HashMap<String, List<String>> map
}
这样做,我可以使用此电话并在没有收到NullPointerException
的情况下获得null
new MapTest().map.key1
但是尝试调用
map.key1.remove(1)
将导致NullPointerException
由于value
正在null
。(如果它抛出IndexOutOfBounds
例外就好了)
有没有办法实例化地图的list
值?
尝试map.withDefault
:
def map = [:].withDefault { [] }
assert map.key1.isEmpty()
一些解释:
- [:] 是实例化空哈希映射的时髦方法
-
withDefault
是地图上的一种时髦方法,可以闭合。 每次请求键初始化值(如果不存在)时,都会调用此闭包。 此闭包采用一个参数(键),并且应该值 - [] 是创建空列表的时髦方法 - { [] } 是一个闭包,为每个键返回一个空列表
在此处查看其他示例