我正在閱讀別人的代碼并被這個片段弄糊涂了:public static Builder Builder() { return new Builder(); }這是構造函數嗎?構造函數通常沒有“返回”語句。常規方法不使用大寫的“Builder()”。我很困惑。
3 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
區分構造函數和方法的關鍵特征是返回類型。所以
/* optional modifiers */ Builder()
是一個構造1對Builder
,但
/* optional modifiers */ Builder Builder()
是一個名為的方法Builder
,它返回一個Builder
對象。這也是一種嚴重的風格違規,因為 Java 方法應該以小寫字母開頭。除此之外,這使人類更容易區分方法和構造函數?。m然編譯器不在乎...)
還有其他的故事。一些修飾符允許用于方法,但不允許用于構造函數。以static
修飾符為例。
簡而言之,您的示例是方法2。
1 - 請注意,構造函數名稱必須與封閉類名稱匹配。但是如果你弄錯了,編譯器仍然會在編譯錯誤中將其稱為構造函數...。
2 - 我們可以進一步將其歸類為靜態工廠方法。但是,這是一種設計分類,與 Java 語言本身無關。
添加回答
舉報
0/150
提交
取消