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

时间:2014-01-22 08:43:57

标签: java

我已经浏览了以下链接Why would a static nested interface be used in Java?

在我的代码库中我有:

public interface I1{

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

    //some other methods

    public void myMethod(I2 myObject); 
}

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

public abstract class SomeClass implements I2{
   //mandatory method...
}

现在,我的问题是 - “将I2放入I1”真的是一个好设计吗?

编辑:

public interface XClientSession {
static public interface OnQueryResultSentListener {

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

}

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

 public abstract class XAppAgentBase extends IntentService 
    implements XClient, OnQueryResultSentListener {
    }

2 个答案:

答案 0 :(得分:1)

没有必要为内部接口使用static关键字,因为在接口内声明的接口默认是静态的,类似于在接口中定义的变量是默认的public和static。

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

答案 1 :(得分:0)

在java中,在另一个

中定义接口是绝对有效的

这是一种编码风格,可以说I2中存在接口I1(或者它们彼此相关)