putIfAbsent<T extends Object> method

T putIfAbsent<T extends Object>({
  1. Object? key,
  2. required T ifAbsent(),
  3. LifecycleExtDataOnDestroy<T>? onDestroy,
})

根据Type + key获取,如果不存在则创建信息

Implementation

T putIfAbsent<T extends Object>({Object? key,
  required T Function() ifAbsent,
  LifecycleExtDataOnDestroy<T>? onDestroy}) {
  if (_isDestroyed) {
    throw Exception('extData has been destroyed.');
  }
  return _data
      .putIfAbsent(
          _genKey<T>(key: key), () => _ExtDataEntry<T>(ifAbsent(), onDestroy))
      .data;
}