我想知道我们可以在界面中定义一个接口.喜欢
interface abc {
void show();
public interface xyz {
void read();
}
}
Run Code Online (Sandbox Code Playgroud)
这是在采访中提出的问题.任何实时使用此.
Hot*_*ter 43
是的,我们可以做到.java中嵌套接口的定义如下:
嵌套接口是任何接口,其声明发生在另一个类或接口的主体内.顶级接口是不是嵌套接口的接口.
请参阅此为多.
进一步 ...
一个原因可能是外部接口有一个将回调实现作为参数的方法.在这种情况下,嵌套接口是回调方法必须实现的契约.我没有理由在顶层声明回调接口.
public interface Processor {
void execute(NotificationListener listener);
interface NotificationListener {
void processingCompleted();
}
}
Run Code Online (Sandbox Code Playgroud)
太阳网站关于这个主题的另一个好读物就在这里
特别要注意的是,在实现接口时,不需要实现嵌套在其中的任何接口.
小智 7
当然..查看java.util.Map接口的SOURCE CODE.Map接口包含一个嵌套的Entry接口.
有趣的是,在源代码中它简单地说
interface Entry <K,V> {
..
}
Run Code Online (Sandbox Code Playgroud)
但是javadoc说
public static interface Map.Entry<K,V>
Run Code Online (Sandbox Code Playgroud)
我想这是因为嵌套接口隐式"公共静态",即使源代码没有这么说.(但是接口内部的方法是公开的,并且不能是静态的,也就是说,接口中只允许实例方法).
-dbednar 2013-07-02
是.
您可以为自己测试一下,并在大约30秒内获得完全明确,无意见,无风险的答案.
可能永远等待论坛上可能不正确的回应是比较而不是理性的探究模式.