我已经浏览了以下链接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 {
}
答案 0 :(得分:1)
没有必要为内部接口使用static关键字,因为在接口内声明的接口默认是静态的,类似于在接口中定义的变量是默认的public和static。
这是一个好的设计吗? - 取决于为其创建的设计。您的代码将I2接口的可访问性限制为仅可访问I1接口的代码部分。
答案 1 :(得分:0)
在java中,在另一个
中定义接口是绝对有效的这是一种编码风格,可以说I2
中存在接口I1
(或者它们彼此相关)