我有一个接口IOuter
和一个嵌套接口IInner
。像
interface IOuter {
public void outerA();
interface IInner {
public void innerA();
}
}
IOuter
和IInner
都有一些setter API
我创建了嵌套接口,因为setter API仅对内部接口有效
外部和内部接口都在一个类中实现,不暴露给外部世界。
外部应用程序通过接口IOuter
与我们的代码交互。现在问题是因为它们没有嵌套接口的对象,所以它们无法调用嵌套接口API。
我不想将嵌套接口API移动到外部接口,因为它可能会被误解。
答案 0 :(得分:2)
您可以实现IOuter
和IInner
接口。例如:
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();