弱缓存,使用弱引用来保存值。

当您希望在对象使用时将其保存在缓存中,并在不再需要时将其删除时,此包很有用。

例如,您可以在遍历嵌套视图时将描述对象保存在缓存中,并在离开所有相关页面时最终将其删除。

特点

  • 使用 WeakReference 来存储值。
  • 实现了完整的 Map<K, V> 接口。

用法

只需创建缓存,添加一些值,当所有其他对这些值的强引用丢失时,它们将被删除。

// ID - Object cache
final cache = WeakCache<int, Object>();

Object? obj = Object();
cache[0] = obj;
// ...
obj = null;
// ...
// After garbage collection cache[0] will be removed.
cache[0] == null;

请参阅 示例 以获取详细的测试用例。

GitHub

查看 Github