【问题标题】:What is the purpose of interface inside a Java class?Java类中接口的目的是什么?
【发布时间】:2017-05-16 19:58:37
【问题描述】:

在下面的示例代码中,我有一个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();
    }
}

【问题讨论】:

  • 你能清理你的代码吗?你有一个没有尝试的悬空捕获,一个随机的}); 自己漂浮等等。
  • 请编译您计划发布的代码。它应该编译干净,或者引发您期望的确切错误。
  • @Michael 。我的目的是提出关于类内部接口用途的问题,以便我添加编辑过的代码以使其简短。可能缺少某些代码。

标签: java android interface


【解决方案1】:

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

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

一些快速 Java SE 示例:

【讨论】:

【解决方案2】:

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

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

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

但是这里没有使用这个接口,所以不清楚为什么会在这里。

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 2018-01-28
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2015-02-04
    • 2010-11-04
    • 1970-01-01
    相关资源
    最近更新 更多