2

我见过很多我们在嵌套类中有公共构造函数的地方。问题是为什么/什么时候需要它们?似乎私有构造函数似乎也可以完成相同的工作,那么为什么我们没有约定任何内部/嵌套类都需要私有构造函数呢?

如果我们永远不需要在对象之外构造内部类,那么将内部类构造函数声明为 private 是否正确?如果是这样,那么为什么 java 映射中的 Entry 不将其构造函数声明为私有?

谢谢,

4

1 回答 1

4

那么您将无法从其他任何地方实例化内部类。能够实例化内部类在 Builder 模式中被大量使用:

House house = new House.Builder().addRoof().paint(Color.WHITE).build();

如果 Builder 的构造函数是私有的,您将无法执行上述操作,这在构建具有复杂状态的对象时非常有用。

于 2013-06-23T08:32:57.953 回答