2012-04-03 5 views
0

Ich habe eine ähnliche Struktur wie folgt aus:Warum kann ich Methoden der inneren Klasse in Java nicht erreichen?

class OuterClass{ 
     AnimatorListener sth; 
     public OuterClass(){ 
      sth = new InnerClass(); 
     } 
     public class InnerClass implements AnimatorListener{ 
      public InnerClass(){} 
      public void doSomething(){} 
      //assuming animator listener methods implemented 
     } 
     public void tryingToDoSomething(){ 
      sth.doSomething(); //I cannot use this, simply it is not seen by eclipse. 
     } 
    } 

Warum kann ich nenne doSomething() Methode von sth Objekt, während ich tryingToDoSomething() bin?

+0

beachten Sie die Klammern '()' in Ihrem Konstruktor für OuterClass – waqaslam

+0

Also was ist die Fehlermeldung gemeldet, wenn Sie diese Korrektur implementieren? – dbrank0

Antwort

1

Ihres Objekt sth zur Klasse gehört AnimatorListener aber es sollte zu InnerClass gehört. Hoffe das hilft, fröhliche Codierung.

1

Ändern Sie Ihre Konstrukteursyntax. Es ist falsch,

public OuterClass{ 
     sth = new InnerClass(); 
    } 

Änderung dieser

public OuterClass(){ 
     sth = new InnerClass(); 
    } 
+0

Ja, du hast Recht, mein Fehler, es war genau so, wie du es in meinen Codes gesagt hast. – guness

+0

Ihre Antwort ist nur eine Korrektur, die Sie tun sollten, indem Sie die Schaltfläche "Bearbeiten" verwenden. Es ist immer noch keine Lösung für mein Problem. – guness

+0

Ich habe keine Bearbeitung privilage. –

Verwandte Themen