如何调用嵌套接口的方法

时间:2013-10-07 08:00:03

标签: java interface

我有一个接口IOuter和一个嵌套接口IInner。像

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

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

3 个答案:

答案 0 :(得分:2)

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

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

    }

    @Override
    public void innerA() {

    }
}

答案 1 :(得分: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(){       
    }
}

答案 2 :(得分:0)

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

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

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

        //OR 
        IInner i2 = new A();
        i.inner();