Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我见过很多我们在嵌套类中有公共构造函数的地方。问题是为什么/什么时候需要它们?似乎私有构造函数似乎也可以完成相同的工作,那么为什么我们没有约定任何内部/嵌套类都需要私有构造函数呢?
如果我们永远不需要在对象之外构造内部类,那么将内部类构造函数声明为 private 是否正确?如果是这样,那么为什么 java 映射中的 Entry 不将其构造函数声明为私有?
谢谢,
那么您将无法从其他任何地方实例化内部类。能够实例化内部类在 Builder 模式中被大量使用:
House house = new House.Builder().addRoof().paint(Color.WHITE).build();
如果 Builder 的构造函数是私有的,您将无法执行上述操作,这在构建具有复杂状态的对象时非常有用。