2017-06-22 36 views

回答

4

數據類的自動生成的部分是:

編譯器自動導出從主構造中聲明的所有 屬性下列成員:

- equals()/hashCode() pair, 
- toString() of the form "User(name=John, age=42)", 
- componentN() functions corresponding to the properties in their order of declaration, 
- copy() function. 

如果任何的這些功能是在類體中明確定義或從基類繼承的 ,它不會被生成。

componentN()功能可使解構像for ((a, b, c) in dataClass) { ... }

然而,數據類不能繼承。 (你可以定義一個擴展另一個非數據類的數據類)

如果你認爲某些類可能擴展你的類,那麼不要把它作爲數據類。

如果您認爲將來沒有類會擴展您的類,並且您可能需要銷燬或copy()函數,那麼將其設爲數據類。

+0

感謝您列出所有這些。我現在有信心將其標記爲數據類。它不應該以任何方式擴展並且可以使用解構。 – glee8e

相關問題