Java unter Verwendung der Schnittstelle als callback

Ich versuche, implementieren Sie eine callback-Prozedur durch eine Klasse implementieren und die Schnittstelle, und dann passieren, dass die Klasse als Objekt (der Schnittstelle), um anderen Klasse. Aber ich erhalte den Fehler: "The constructor ClassB(TestMe) ist undefiniert". Ich dachte, ich mache das richtig, ich weiß nicht, was ich falsch mache. Kann mir bitte jemand einige Ratschläge? Mein code ist unten:

Habe ich eine Schnittstelle:

public interface RequestResults {

     public void requestFailed(String message);

     public void requestSucceeded(String xml);

}

Und ich habe eine Klasse, die die Schnittstelle implementiert:

public class TestMe implements RequestResults {

    public TestMe() {

        ClassB b = new ClassB(this);

    }

    public void requestFailed(String message) {
        //TODO Auto-generated method stub

    }

    public void requestSucceeded(String xml) {
        //TODO Auto-generated method stub

    }
}

Schließlich habe ich eine Klasse instanziiert wird in die Vorherige Klasse:

  public class ClassB {

    RequestResults results;

    public ClassB(RequestResults results) {

        this.results = results;

    }

}

Dank!

  • Welche Java-version?
  • Versuchen Sie, die Reinigung und den Wiederaufbau. Sieht gut aus für mich.
  • Wo erhalten Sie diese Fehlermeldung? Dein code kompiliert einwandfrei.
  • Ich denke, ich sollte erwähnt haben, aber ich bin der Entwicklung für das android - ...auch eclipse ist mir, dass der Fehler inline
  • es spielt keine Rolle, android oder nicht, der code ist in Ordnung. Führen Sie eine saubere auf Ihr Projekt, und kompilieren
  • Randnotiz: ich hoffe das ist nur ein Vereinfachtes Beispiel, aber vorbei this auf ein anderes Objekt, während in den Konstruktor ist nicht eine gute Praxis. Es ist möglich, dass das Objekt nur teilweise erstellt, wenn anderen code versucht, es zu nennen.
  • eclipse hat eine saubere Funktion, die speziell im Fall etwas passiert, das bewirkt, dass es das Modell nicht mit dem gespeicherten code im editor. Klicken Sie auf "Projekt - > clean..." und reinigen Sie Ihre Projekte. Dies löscht alle kompilierten Binärdateien und Kraft eclipse komplett kompilieren Sie Ihr Projekt neu.
  • Hey alle, ich habe eine sauber und ich bin immer noch Erhalt der Mitteilung. Wirklich seltsam. Ich weiß, dass sollte es egal sein, aber ich bin für die Entwicklung für Android 2.1 update 1. Ich bin mit JRE 1.6.0_16. Ich bin wirklich ratlos, was das problem ist.

InformationsquelleAutor littleK | 2010-11-03
Schreibe einen Kommentar