codecamp

鸿蒙OS 外层UnownedOuter

注释一个类以消除循环引用。

注释内部类意味着删除其对引用的外部对象的所有权,从而使引用不包括在引用计数中。匿名内部类可以使用内部方法进行注释。

此类可以解决无法注释外部类实例的字段的问题,因为当 Java 内部类隐式捕获该字段时,没有提供显式声明。如果内部类不能定义为静态嵌套类,则必须使用外部类实例,并且可以使用 UnownedOuter 注释内部类以消除循环引用。

此类的不正确使用可能导致与未拥有相同的结果,从而导致引用对象的早期释放。

请参考以下示例代码:

   class Outer{

 
       @UnownedOuter
       private class Innert {
           ...;
       }

 
       Private Runnable r = new Runnable() {
           @Override
           @UnownedOuter
           Public void run() {
               ...;
           }
       }
   }

 
鸿蒙OS 本地Unowned
鸿蒙OS 弱
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }