1

我有一个 InterfaceIOuter和一个嵌套 interface IInner。喜欢

interface IOuter {
   public void outerA();
   interface IInner {
      public void innerA();
   }
}

两者IOuter都有IInner一些 setter API。
我制作了嵌套接口,因为 setter API 仅对内部接口有效。
外部和内部接口都在一个不暴露给外界的类中实现。
外部应用程序通过接口与我们的代码进行交互IOuter。现在的问题是因为他们没有嵌套接口的对象,所以他们无法调用嵌套接口 API。
我不想将嵌套接口 API 移动到外部接口,因为它可能会被误解。

4

3 回答 3

2

您可以同时实现IOuterIInner接口。例如:

public class Test implements IOuter, IOuter.IInner {
    @Override
    public void outerA() {

    }

    @Override
    public void innerA() {

    }
}
于 2013-10-07T08:10:07.203 回答
0

可以直接调用嵌套接口方法,如下图

尝试

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-07T08:05:51.880 回答
0

内部接口可以用作外部接口的静态成员,也可以直接如下所示: 这里A是外部接口和内部接口的实现。

       IOuter o = new A();
        o.outer();

        IOuter.IInner i = new A();
        i.inner();

        //OR 
        IInner i2 = new A();
        i.inner();
于 2013-10-07T08:19:51.633 回答