Zugriff aus einer Runnable auf die Oberklasse

== != equals

Aktives Mitglied
Ich grüße euch und wünsche einen angenehmen Abend.

Habe folgendes Stück geklaut, um eine Methode regelmäßig aufzurufen:

Java:
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool( 1 ); 
scheduler.scheduleAtFixedRate( 
    new Runnable() { 
      @Override public void run() { 
        System.out.println( "Tata" ); 
      } 
    }, 
    1 /* Startverzögerung */, 
    2 /* Dauer */, 
    TimeUnit.SECONDS );

// Nach einer Sekunde Startverzögerung bekommen wir jede zweite Sekunde ein »Tata«.
Nach meiner Internetrecherche fand ich heraus, dass Runnable eine innere Klasse ist. Angeblich könne ich daraus auf die Methoden der Klasse, die Runnable beinhaltet, zugreifen. Nur wie? Habe mal in eclipse testweise this. eingegeben, aber da kommen nur die Klassen-Standardmethoden.

Danke für jede Hilfe. 🙂
 
auf welche methoden willst du jetzt zugreifen?

/edit: kannst du nicht die methoden einfach so aufrufen?! sollte doch gehen..ansonstne ÄußereKlassenname.this.methode();
 
Zuletzt bearbeitet:
kannst du nicht die methoden einfach so aufrufen?! sollte doch gehen..ansonstne ÄußereKlassenname.this.methode();
Stimmt, geht, eclipse hat es nur nicht vorgeschlagen.
Warum es bei mir trotzdem nicht ging: In der aufgerufenen Methode gab es eine Variable, die zum Zeitpunkt des Aufrufs null war und ich habe so getan als wenn es ein gültiges Objekt mit Methode wäre. Allerdings gab es keine Fehlermeldung von Java. ???:L
Jetzt geht es, auch wenn das Verhalten Javas für mich unverständlich ist. :rtfm:
 

Neue Themen


Zurück
Oben