Cette évasion signifie que d'autres threads contiennent des références à l'objet avant le retour du constructeur. Les méthodes d'appel qui n'ont pas encore construit un objet peuvent provoquer des erreurs déroutantes, donc cette évasion doit être évitée.
Cette évasion se produit souvent lors du démarrage d'un fil ou de l'enregistrement d'un auditeur dans un constructeur, comme:
classe publique thisEscape {public thisEscape () {new Thread (new EscaperUnnable ()). start (); // ...} classe privée EscaperUnnable implémente Runnable {@Override public void run () {// via cette épreurence.Cets, les objets de classe périphérique peuvent être référencés, mais à l'heure actuelle, la classe périphérique n'a peut-être pas été construite}}}Solution
classe publique ThisEscape {Fil privé t; public thiscape () {t = nouveau thread (new EscaperUnnable ()); // ...} public void init () {t.start (); } Classe privée EscaperUnnable implémente Runnable {@Override public void run () {// via thisEscape.Ce, vous pouvez vous référer aux objets de classe périphérique. Pour le moment, vous pouvez vous assurer que les objets de classe périphérique ont été construits}}}Ce qui précède est tout le contenu compilé par l'éditeur cette fois. Merci pour votre soutien à wulin.com.