嵌套Java接口

时间:2018-04-07 09:57:28

标签: java android interface

我在https://developer.android.com/training/basics/network-ops/connecting.html中看到了这个界面声明:

public interface DownloadCallback<T> {
    interface Progress {
        int ERROR = -1;
        int CONNECT_SUCCESS = 0;
        int GET_INPUT_STREAM_SUCCESS = 1;
        int PROCESS_INPUT_STREAM_IN_PROGRESS = 2;
        int PROCESS_INPUT_STREAM_SUCCESS = 3;
    }
    void updateFromDownload(T result);
    ...
}

根据https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html,界面正文只能包含

  • 抽象方法
  • 默认方法
  • 静态方法
  • 常数声明
  • 在这种情况下,接口主体包含另一个接口。你怎么解释这个代码块?有人可以指出我正确的文档,以便我可以了解更多有关这种方法的信息吗?

    1 个答案:

    答案 0 :(得分:2)

    请参阅JLS §9.1.4

      

    接口的主体可以声明接口的成员,即字段(第9.3节),方法(第9.4节),类(第9.5节)和接口(第9.5节)。

    用法只是OuterInterface.NestedInterface

    在您引用的代码中,嵌套接口仅用于包含常量,以便它们不会“泄漏”到实现DownloadCallback的类。