Kotlin 面试题
目录

Kotlin 中数据类的特性有哪些?

· 约 3 分钟读完 · 第 82 / 200 章

推荐答案

在 Kotlin 中,数据类(data class)具有以下特性:

  1. 自动生成 toString() 方法:数据类会自动生成一个包含所有属性的 toString() 方法。
  2. 自动生成 equals() 和 hashCode() 方法:数据类会自动生成 equals() 和 hashCode() 方法,用于比较对象的相等性和哈希值。
  3. 自动生成 copy() 方法:数据类会自动生成一个 copy() 方法,用于复制对象并允许修改部分属性。
  4. 自动生成 componentN() 函数:数据类会自动生成 componentN() 函数,用于解构声明(destructuring declarations)。
  5. 主构造函数必须至少有一个参数:数据类的主构造函数必须至少有一个参数,且这些参数必须标记为 val 或 var。
  6. 不能是抽象的、开放的、密封的或内部的:数据类不能是抽象的、开放的、密封的或内部的。

本题详细解读

1. 自动生成 toString() 方法

数据类会自动生成一个 toString() 方法,该方法返回一个包含类名和所有属性的字符串表示。例如:

2. 自动生成 equals() 和 hashCode() 方法

数据类会自动生成 equals() 和 hashCode() 方法,用于比较对象的相等性和哈希值。例如:

3. 自动生成 copy() 方法

数据类会自动生成一个 copy() 方法,用于复制对象并允许修改部分属性。例如:

4. 自动生成 componentN() 函数

数据类会自动生成 componentN() 函数,用于解构声明(destructuring declarations)。例如:

5. 主构造函数必须至少有一个参数

数据类的主构造函数必须至少有一个参数,且这些参数必须标记为 val 或 var。例如:

6. 不能是抽象的、开放的、密封的或内部的

数据类不能是抽象的、开放的、密封的或内部的。例如,以下代码会导致编译错误:

通过这些特性,Kotlin 的数据类提供了一种简洁的方式来定义主要用于存储数据的类。