[英]Should we always have a zero-argument constructor in a Class?
每個Java類都應該有一個零參數構造函數嗎?
不,始終創建零參數構造函數沒有意義,以下場景是提供至少一個參數構造函數的示例
您希望擁有/需要零參數構造函數的情況:
在我看來,有一個零參數構造函數的錯誤論據是一長串的論點。 為此,有一個比接受初始化創建后未處於安全狀態的對象更好的解決方案:
正如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...
}
不。但也有例外。 例如,如果您希望您的類只包含靜態util方法或單例類或只包含常量的類,那么您應該創建一個沒有參數的私有構造函數 ,以防止它被顯式實例化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.