我见过很多地方,我们在嵌套类中有公共构造函数。 问题是为什么/何时需要它们?似乎私有构造函数似乎也会执行相同的工作,那么为什么我们没有任何内部/嵌套类需要私有构造函数的约定?
如果我们永远不需要在对象之外构造内部类,那么将内部类构造函数声明为private是正确的吗?如果是这样,为什么java map中的Entry不会声明其构造函数是私有的?
谢谢,
答案 0 :(得分:4)
然后你将无法从其他任何地方实例化内部类。 能够实例化内部类在Builder模式中被大量使用:
House house = new House.Builder().addRoof().paint(Color.WHITE).build();
如果Builder的构造函数是私有的,那么在构建具有复杂状态的对象时,您将无法执行上述操作。