Java类中接口的用途是什么?

时间:2017-05-16 19:58:37

标签: java android interface

在下面的示例代码中,我有一个interface内部类,以便我使用接口方法。但是我没有看到有/没有接口方法的效果。有人可以帮助我添加包含它们的目的是什么?

public class Controller {

    FlowerCallBackReceiver mListener;

    @Override
    public void success(String s, Response response) {
        try { 
            mListener.onFetchProgress(flower);
        } catch (JSONException e) {
            mListener.onFetchFailed();
        }
        mListener.onFetchComplete();
    }

    @Override
    public void failure(RetrofitError error) {
        mListener.onFetchComplete();
    }

    public interface FlowerCallBackReceiver {
        void onFetchProgress(Flower flower);
        void onFetchComplete();
        void onFetchFailed();
    }
}

2 个答案:

答案 0 :(得分:2)

这个嵌套接口声明只是一种简单的组织技术。它根本不会改变标准的Java interface语义。

例如,开发人员使用它来清理顶级包名称空间。人们可能会说,这是一种风格。

一些快速 Java SE 示例:

答案 1 :(得分:0)

根据您显示的代码,没有明显的理由在那里拥有该接口。

如果要在类的其余部分的主体中使用该类的实现,则通常可以在类中嵌套接口,例如,如果Controller具有如下方法:

void doSomething(FlowerCallBackReceiver callback) {
  // ...
}

但是这里没有使用这个界面,因此不清楚为什么它会在这里。