La clase interna UnownedOuter de Harmony Foundation para eliminar referencias circulares (conocimiento básico del desarrollo de HarmonyOS HarmonyOS)

¿Qué es sin dueño?

Anote una clase para eliminar referencias circulares.
Anotar una clase interna significa eliminar su propiedad del objeto externo referenciado, de modo que la referencia no se incluya en el recuento de referencias. Las clases internas anónimas se pueden anotar con métodos internos.

Esta clase puede resolver el problema de que el campo de la instancia de clase externa no se puede anotar, porque cuando la clase interna de Java captura implícitamente el campo, no se proporciona una declaración explícita. Si la clase interna no se puede definir como una clase anidada estática, se debe usar una instancia de clase externa y la clase interna se puede anotar con UnownedOuter para eliminar las referencias circulares.

El uso incorrecto de esta clase puede conducir al mismo resultado que no tenerla, lo que lleva a la liberación anticipada del objeto al que se hace referencia.

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

Se prohíbe la reimpresión no autorizada


Para intercambios más técnicos, únase al grupo QQ

Nombre del grupo: harmonyos Hongmeng Technology Exchange
Group number: 856567895


Empiece de cero para aprender sobre el desarrollo de HarmonyOS Hongmeng 2.0

Supongo que te gusta

Origin blog.csdn.net/iCloudEnd/article/details/108698592
Recomendado
Clasificación