MeineKlasse.this.meineMethode()

Status
Nicht offen für weitere Antworten.

sliwalker

Top Contributor
Hi,

hab gerade in einem anderen Thread was zu so einer Notation geschrieben:

Code:
MeineKlasse.this.meineMethode()

Ich habe das vor einiger Zeit bei mir im Projekt gesehen und seitdem weiterverwendet. Mich würde aber interessieren, warum das funktioniert und was das bedeutet.
Verwendet wird das zum Beispiel in Threads oder ActionListenern um auf die Methoden der äußeren Klasse zugreifen zu können. Aber warum so? Ist das gut oder schlecht?

Code:
public class Test {

                JButton btnOk = new JButton();
		btnOk .addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent eActionEvent)
			{
				Test.this.doSomething();
			}
		});

                private void doSomething() {
                     // doing something  
                }
}


Danke für die Antworten ;)

greetz
SLi
 
S

SlaterB

Gast
warum nicht/ wie anders?

das normale this ist für die innere Klasse vergeben,
das ist eine logische Alternative für das 'äußere' this
 

Janus

Bekanntes Mitglied
das ist der qualifizierte zugriff auf das umgebende objekt. völlig korrekt. funktioniert aber nur so in anonymen klassen und nicht-statischen inner classes.

wann das notwendig ist, sieht man an folgendem beispiel:

Code:
class Foo
{
  private void baz()
  {
  }

  private class Bar
  {
     void narf()
     {
        this.baz();
        Foo.this.baz();
     }

     void baz()
     {
     }
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben