首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调用嵌套接口的方法

如何调用嵌套接口的方法
EN

Stack Overflow用户
提问于 2013-10-07 16:00:03
回答 3查看 832关注 0票数 1

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

代码语言:javascript
复制
interface IOuter {
   public void outerA();
   interface IInner {
      public void innerA();
   }
}

IOuterIInner都有一些setter API。

我做了嵌套接口,因为setter API只对内部接口有效。

外部接口和内部接口都在一个不对外公开的类中实现。

外部应用程序通过接口IOuter与我们的代码交互。现在的问题是,因为它们没有嵌套接口的对象,所以它们无法调用嵌套接口的API。

我不想将嵌套接口API移到外部接口,因为它可能会被误解。

EN

回答 3

Stack Overflow用户

发布于 2013-10-07 16:10:07

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

代码语言:javascript
复制
public class Test implements IOuter, IOuter.IInner {
    @Override
    public void outerA() {

    }

    @Override
    public void innerA() {

    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-10-07 16:05:52

您可以直接调用嵌套接口方法,如下所示

试一试

代码语言:javascript
复制
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(){       
    }
}
票数 0
EN

Stack Overflow用户

发布于 2013-10-07 16:19:52

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

代码语言:javascript
复制
       IOuter o = new A();
        o.outer();

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

        //OR 
        IInner i2 = new A();
        i.inner();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19219654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档