UnownedOuter 是什么
注释一个类以消除循环引用。
注释内部类意味着删除其对引用的外部对象的所有权,从而使引用不包括在引用计数中。匿名内部类可以使用内部方法进行注释。
此类可以解决无法注释外部类实例的字段的问题,因为当Java内部类隐式捕获该字段时,没有提供显式声明。如果内部类不能定义为静态嵌套类,则必须使用外部类实例,并且可以使用UnownedOuter注释内部类以消除循环引用。
此类的不正确使用可能导致与未拥有相同的结果,从而导致引用对象的早期释放。
class Outer{
@UnownedOuter
private class Innert {
...;
}
Private Runnable r = new Runnable() {
@Override
@UnownedOuter
Public void run() {
...;
}
}
}
未经授权禁止转载
更多技术交流请加入QQ群
群名称:harmonyos鸿蒙技术交流
群 号:8565678