我有一个接口IOuter和一个嵌套接口IInner。喜欢
interface IOuter {
public void outerA();
interface IInner {
public void innerA();
}
}IOuter和IInner都有一些setter API。
我做了嵌套接口,因为setter API只对内部接口有效。
外部接口和内部接口都在一个不对外公开的类中实现。
外部应用程序通过接口IOuter与我们的代码交互。现在的问题是,因为它们没有嵌套接口的对象,所以它们无法调用嵌套接口的API。
我不想将嵌套接口API移到外部接口,因为它可能会被误解。
发布于 2013-10-07 16:10:07
您可以同时实现IOuter和IInner接口。例如:
public class Test implements IOuter, IOuter.IInner {
@Override
public void outerA() {
}
@Override
public void innerA() {
}
}发布于 2013-10-07 16:05:52
您可以直接调用嵌套接口方法,如下所示
试一试
public class Test implements IOuter, IOuter.IInner {
public static void main(String args[]) {
Test t1 = new Test();
t1.innerA();
}
public void outerA(){
}
public void innerA(){
}
}发布于 2013-10-07 16:19:52
内部接口可以用作外部的静态成员,也可以直接使用,如下所示:这里的A是外部接口和内部接口的实现。
IOuter o = new A();
o.outer();
IOuter.IInner i = new A();
i.inner();
//OR
IInner i2 = new A();
i.inner();https://stackoverflow.com/questions/19219654
复制相似问题