Referenz einer Funktion aus einer anonymen Klasse?

Die4Me

Mitglied
Hallo,

ich hab mal ein kleines Problemchen.
Ich habe eine Funktion und erzeuge dort eine anonyme Klasse. Über welche Referenz komme ich dann auf die einzelnen Variablen dieser Funktion?
Auf die äußere Klasse kommt man ja mit dem [Klassennamen].this.[varname]. Das weiß ich.
Was geht ist einfach den Namen der Variablen angeben. Jedoch würde mich mal interessieren, ob es dort auch ein Schlüsselwort für eine Referenz gibt. Als kleines Bsp mal.
Java:
public class TestAnonClass {
	
	protected String ausgabe = "Hallo Welt!";
	
	public void funktion() {
		final String drin = "Ich bin drin.";
		Runnable test = new Runnable() {
			@Override
			public void run() {
				System.out.println( Area.this.ausgabe );
				System.out.println( Area.this.drin );	// Das geht nicht. Wie ist denn die Referenz?
				System.out.println( drin );				// Das geht dann natürlich...
			}
		};
	}
}
Ist vielleicht ein klein bisschen blödes Bsp, aber ich hoffe mal, dass ihr wisst, was ich meine! ^^
Ich möchte eigentlich nur wissen, ob man das Ding auch per einer this-Referenz, oder so ähnlich ansprechen kann.

Danke und mfg
die4me
 
Das sind Methoden, keine Funktionen 😉 Nein, diese Variablen sind nur während des Aufrufs vorhanden und können von aussen nicht gelesen werden. Sie können höchstens anderen Methoden übergeben oder als Rückgabewert dem Aufrufer zurückgegeben werden.

Edit: Auf deine Frage bezogen: natürlich kann die Variable von "innen" (von der anynomen inneren Klasse) geselen werden, solange sie final ist - aber nur direkt.
 
Zuletzt bearbeitet:
Nein, kann man nicht. Das "drin" ist eine lokale (final-)Variable, mit this kommt man nur an Member des umschließenden Objekts.
 

Zurück
Oben