在此代码中嵌套接口的用途是什么

The*_*ind 7 java

我已经浏览了以下链接为什么在Java中使用静态嵌套接口?.

在我的代码库中我有:

public interface I1{

   public static interface I2 {
        public void doSomething();
   }

    //some other methods

    public void myMethod(I2 myObject); 
}
Run Code Online (Sandbox Code Playgroud)

在另一个不同包中的其他类中:

public abstract class SomeClass implements I2{
   //mandatory method...
}
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是- "难道真的有一个很好的设计,把I2I1"?

编辑:

public interface XClientSession {
static public interface OnQueryResultSentListener {

        public void onQueryResultSent(XQueryResult result);
    }
 public void setOnQueryResultSentListener(OnQueryResultSentListener listener);

}
Run Code Online (Sandbox Code Playgroud)

/在另一个文件中我有......

 public abstract class XAppAgentBase extends IntentService 
    implements XClient, OnQueryResultSentListener {
    }
Run Code Online (Sandbox Code Playgroud)

Ani*_*kur 1

内部接口不需要使用 static 关键字,因为接口内部声明的接口默认是静态的,类似于接口中定义的变量默认是公共和静态的。

这是一个好的设计吗?- 取决于其创建的设计目的。您的代码将 I2 接口的可访问性限制为仅可访问 I1 接口的代码部分。