Kotlin 數(shù)據(jù)類有以下一些限制:
- 不能使用基本類型作為參數(shù)或返回值,必須使用它們的包裝類,如 Int、Double 等。
- 不能使用抽象類或接口作為參數(shù)或返回值。
- 不能使用
var
關(guān)鍵字聲明屬性,所有屬性必須是 val
,即不可變的。
- 必須顯式地定義一個(gè)主構(gòu)造函數(shù),該構(gòu)造函數(shù)必須接受所有屬性作為參數(shù)。
- 如果數(shù)據(jù)類沒有任何參數(shù),那么必須使用
@JvmStatic
注解,以便在 Java 中可以直接通過(guò)類名調(diào)用其構(gòu)造函數(shù)。
- 數(shù)據(jù)類自動(dòng)生成
equals()
、hashCode()
、toString()
等方法,但不能自定義這些方法的行為。
- 數(shù)據(jù)類不能繼承其他類或?qū)崿F(xiàn)接口。
- 數(shù)據(jù)類只能用于創(chuàng)建簡(jiǎn)單的數(shù)據(jù)載體,不能用于復(fù)雜的邏輯處理。