鸿蒙OS 外层UnownedOuter

2020-10-15 09:37 更新

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

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

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

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

请参考以下示例代码:

  1. class Outer{
  2. @UnownedOuter
  3. private class Innert {
  4. ...;
  5. }
  6. Private Runnable r = new Runnable() {
  7. @Override
  8. @UnownedOuter
  9. Public void run() {
  10. ...;
  11. }
  12. }
  13. }
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号