Essa fuga significa que outros threads mantêm referências ao objeto antes que o construtor retorne. Os métodos de chamada que ainda não construíram um objeto podem causar erros confusos; portanto, essa fuga deve ser evitada.
Essa fuga geralmente ocorre ao iniciar um tópico ou registrar um ouvinte em um construtor, como:
classe pública thisescape {public thisescape () {new Thread (new escaperunnable ()). start (); // ... } private class EscapeRunnable implements Runnable { @Override public void run() { // Through ThisEscape.this, peripheral class objects can be referenced, but at this time, the peripheral class objects may not have been constructed yet, that is, the escape of this reference of the peripheral class occurred} } }Solução
classe pública thisescape {private thread t; public thisescape () {t = new Thread (new escaperunnable ()); // ...} public void init () {t.start (); } Classe privada Implementos escarpadores de runnable {@Override public void run () {// através desteescape.Este, você pode se referir a objetos de classe periférica. Neste momento, você pode garantir que os objetos da classe periférica tenham sido construídos}}}O exposto acima é todo o conteúdo compilado pelo editor desta vez. Obrigado pelo seu apoio ao wulin.com.