Java使用接口作为回调函数

5

我正在尝试通过让一个类实现接口并将该类作为接口对象传递给另一个类来实现回调过程。然而,我收到了错误消息:“构造函数ClassB(TestMe)未定义”。我认为我做得很正确,但我不知道我做错了什么。请问有人能提供一些建议吗?我的代码如下:

我有一个接口:

public interface RequestResults {

     public void requestFailed(String message);

     public void requestSucceeded(String xml);

}

我有一个实现该接口的类:

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

    }
}

最后,我有一个在前面的类中实例化的类:
  public class ClassB {

    RequestResults results;

    public ClassB(RequestResults results) {

        this.results = results;

    }

}

谢谢!


1
尝试清理并重新构建。在我看来没问题。 - Mark Peters
我想我应该提一下,我正在为Android开发...而且Eclipse在行内给了我那个错误。 - littleK
不管是安卓还是其他,代码都没问题。先在你的项目上执行一次清理,然后重新编译。 - Ramp
@behrk2,Eclipse具有清理功能,特别是在发生某些情况导致其模型与编辑器中保存的代码不一致时。单击“项目>清理...”并清理您的项目。这将删除所有已编译的二进制文件,并强制Eclipse完全重新编译您的项目。 - Tim Bender
大家好,我进行了清理,但仍然收到通知。真的很奇怪。我知道这不应该有影响,但我正在为Android 2.1更新1开发。我正在使用JRE 1.6.0_16。我真的很困惑问题出在哪里。 - littleK
显示剩余2条评论
4个回答

5

我已经在我的端编写了整个程序,一切都编译通过。重新清理和编译可能会有所帮助。


4

我认为你的代码是正确的。尝试重新编译所有内容。也许你一直在使用旧版本的TestMe


3

嗯,对我来说编译没有问题。这里有一个ideone SSCCE


1

同时为我编译...

有时候需要在Eclipse中清理项目


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接