Accédez à la classe externe «super» de la classe interne en Java

Comment puis-je accéder à la classe externe ‘ super d’une classe interne?

Je remplace une méthode pour la faire fonctionner sur un thread différent. À partir d’un thread en ligne, j’ai besoin d’appeler la méthode d’origine, mais bien sûr, un simple appel de method() se transformerait en une récursion infinie.

Plus précisément, j’étends BufferedReader:

 public WaitingBufferedReader(InputStreamReader in, long waitingTime) { [..] @Override public Ssortingng readLine() { Thread t= new Thread(){ public void run() { try { setMessage(WaitingBufferedReader.super.readLine()); } catch (IOException ex) { } } }; t.start(); [..] } } 

Cela me donne quelque part une NullPointerException que je ne peux pas trouver.

Merci.

    Comme ça:

     class Outer { class Inner { void myMethod() { // This will print "Blah", from the Outer class' toSsortingng() method System.out.println(Outer.this.toSsortingng()); // This will call Object.toSsortingng() on the Outer class' instance // That's probably what you need System.out.println(Outer.super.toSsortingng()); } } @Override public Ssortingng toSsortingng() { return "Blah"; } public static void main(Ssortingng[] args) { new Outer().new Inner().myMethod(); } } 

    Le test ci-dessus, une fois exécuté, affiche:

     Blah Outer@1e5e2c3