每个Java类都应该有一个零参数构造函数吗?
答案 0 :(得分:22)
答案 1 :(得分:10)
不,始终创建零参数构造函数没有意义,以下场景是提供至少一个参数构造函数的示例
您希望拥有/需要零参数构造函数的情况:
在我看来,有一个零参数构造函数的错误论点是一长串参数。为此,有一个更好的解决方案,而不是接受初始化创建后未处于安全状态的对象:
答案 2 :(得分:4)
正如Andy Thomas-Cramer已经指出的那样,甚至是不可能的:
class NeedsToBeImmutable {
// For a class to be immutable, its reachable state
// MUST be reached through a final field
private final String stuff;
//!!Compile error!!
public NeedsToBeImmutable(){}
public NeedsToBeImmutable(String stuff){
this.stuff = stuff;
}
//getters...
}
答案 3 :(得分:3)
没有。但也有例外。例如,如果您希望您的类只包含静态util方法或单例类或只包含常量的类,那么您应该创建一个没有参数的私有构造函数,以防止它被显式实例化。