Diese Flucht bedeutet, dass andere Threads Verweise auf das Objekt enthalten, bevor der Konstruktor zurückgibt. Das Aufrufen von Methoden, die ein Objekt noch nicht konstruiert haben, kann zu verwirrenden Fehlern führen. Daher sollte diese Flucht vermieden werden.
Diese Flucht tritt häufig beim Starten eines Threads oder der Registrierung eines Hörers in einem Konstruktor auf, wie beispielsweise:
public class thisescape {public thesescape () {neuer Thread (new Escaperunnable ()). start (); // ...} private Klasse Escaperunnable -implements runnable {@Override public void run () {// über Thisescape.Dieis können periphere Klassenobjekte verwiesen werdenLösung
öffentliche Klasse thisescape {privater Thread t; public thisescape () {t = neuer Thread (neuer Escaperunnable ()); // ...} public void init () {t.start (); } private Klasse Escaperunnable Geräte runnable {@Override public void run () {// über Thisescape.Dieis können Sie sich auf Peripherieklassenobjekte beziehen. Zu diesem Zeitpunkt können Sie sicherstellen, dass die Objekte peripherer Klassen konstruiert wurden}}}Das obige ist alles, was der Editor dieses Mal vom Editor zusammengestellt wird. Vielen Dank für Ihre Unterstützung bei Wulin.com.