In einem Klassenkonstruktor versuche ich zu verwenden:
%Vor% Ich suche die Datenbank und wenn der Datensatz existiert, verwende ich theObject
generiert von Hibernate Query.
Warum kann ich this
nicht verwenden?
Weil Sie this
nicht zuweisen können.
this
repräsentiert die aktuelle Objektinstanz, d. h. Sie selbst. Sie können this
als unveränderlichen Verweis auf die Objektinstanz betrachten, deren Code gerade ausgeführt wird.
Dieses Schlüsselwort enthält die Referenz des aktuellen Objekts. Sehen wir uns ein Beispiel an, um es zu verstehen.
%Vor%Im obigen Beispiel gibt es einen Klassennamen ThisKeywordExample, der aus zwei Instanzdatenmembern a und b besteht. Es gibt eine Add-Methode, die zuerst die Zahl in a und b setzt und dann die Addition zurückgibt.
Instanzdatenmitglieder nehmen den Speicher, wenn wir das Objekt dieser Klasse erstellen, und werden von der refrence-Variablen in aufgerufen was wir die Referenz dieses Objekts halten. Im obigen Beispiel haben wir das Objekt der Klasse in der main-Methode erstellt und halten die Referenz dieses Objekts in die Referenzvariable tke. wenn wir die add-Methode aufrufen, wie in der add-Methode auf a und b zugegriffen wird weil add-Methode nicht die Referenz des Objekts hat. Die Antwort dieser Frage löscht das Konzept dieses Schlüsselwortes
Der obige Code wird von der JVM als
behandelt %Vor%Die obigen Änderungen werden von der JVM vorgenommen, so dass sie automatisch den einen weiteren Parameter (object refrence) in die Methode und übergibt Halte es in die Reference-Variable und wende auf das Instanzelement dieses Objekts, um diese Variable zu werfen.
Die obigen Änderungen werden von JVM gemacht, wenn Sie Code kompilieren werden, dann gibt es einen Kompilierungsfehler, weil Sie nichts dabei tun müssen.Alle Dies wird von der JVM behandelt.