鸿蒙基础之Unowned 消除循环引用 (HarmonyOS鸿蒙开发基础知识)

Unowned 是什么

注释Unowned对象以消除循环引用。
如果注释了字段成员或局部变量,则它们将不具有对引用对象的所有权,并且它们的引用也将不包括在引用对象的引用计数中。

Unowned支持以下常见数据结构的注释:双链表,TreeMap和Linked HashMap。

Unowned不正确使用可能会导致早期释放引用的对象。

以TreeMap数据结构为例,可以将父节点标注为“无主”,而不能标注左右节点:

   static final class TreeMapEntry<K,V> implements Map.Entry<K,V> {
       K key;
       V value;
       TreeMapEntry<K,V> left;
       TreeMapEntry<K,V> right;
       @Unowned
       TreeMapEntry<K,V> parent;
       boolean color = BLACK;
       ...;
   }
 

未经授权禁止转载


更多技术交流请加入QQ群

群名称:harmonyos鸿蒙技术交流
群 号:856567895


从零开始入门学习HarmonyOS鸿蒙2.0开发

猜你喜欢

转载自blog.csdn.net/iCloudEnd/article/details/108640851