为什么我们需要内部接口,尤其是带有私有访问修饰符的接口?

Why do we need inner interfaces, especially with the private access modifier?

我是 Java 的新手。最近我读到有关内部接口的内容,这让我很困惑:首先为什么要使用它们,其次为什么它们也可以声明为私有而不是外部接口。在我看来接口应该是 public 以便所有人都可以使用它们。

内部接口或嵌套接口的主要目的是将类似的东西分组。考虑集合中的 Map 接口。它有一个称为 Entry 的嵌套接口。没有地图就不可能存在条目,因此从逻辑上讲,将它们组合在一起是有意义的。另一方面,可能存在名称为 Entry 的其他接口,这将导致命名空间冲突。因此使用了嵌套接口。 回答另一个问题,在任何场合使用访问修饰符都是为了防止未经授权的访问。将嵌套接口设为私有将防止其他开发人员以不希望的方式实现它们。 希望这有帮助。

java 中内部接口的用途如下

  1. 解决接口具有通用名称时的命名空间问题
  2. 增加封装
  3. 通过将相关界面分组在一个地方来提高可读性。

嵌套接口可以声明为 public、私有或受保护。 这不同于 top-level interface.The top-level 接口必须声明为 public 或使用默认访问级别。

在另一个接口的主体中声明一个内部接口。

public interface Items {
            interface MyList {
            }
        }

在另一个 class 的主体中声明内部接口。

 public class Items{
                public interface MyList {
                    void add(Items items);
                    String getItesmNames();
                }
        }

最后,我们可以按照下面的方式实现

public class SpecialItems implements Items.MyList  {

}

当在其封闭范围之外使用嵌套接口时,它必须由 class 的名称或它所属的接口的名称限定。