弱缓存,使用弱引用来保存值。
当您希望在对象使用时将其保存在缓存中,并在不再需要时将其删除时,此包很有用。
例如,您可以在遍历嵌套视图时将描述对象保存在缓存中,并在离开所有相关页面时最终将其删除。
特点
- 使用
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;
请参阅 示例 以获取详细的测试用例。