使用REST API的数据时,生成数据类还是仅生成简单的普通类会更好吗?

时间:2018-10-09 09:53:16

标签: kotlin

假设我有一个API,它将向我返回有关用户信息的响应:

  • 名称
  • 年龄

在普通类中,我将创建一个UserInfo类:

class UserInfo (val username:String, val age:String)

但是我发现很多人建议它应该是一个数据类(其中有些人建议必须):

data class UserInfo (val username:String, val age:String)

AFAIK,无论UserInfo是否为数据类,默认情况下都是公共最终,它会自动生成属性的吸气剂功能,这些属性也公共最终默认情况下,属性不能分配任何值。

我知道数据类自动生成/覆盖有用的功能,例如 copy() toString() equals( )。如果我只需要获取UserInfo类的名称和年龄值,而无需比较UserInfo的相等性,是否还需要将其声明为数据类?

2 个答案:

答案 0 :(得分:0)

根据您提供的上下文,应将UserInfo类声明为数据类。

数据类的作用是仅保存表示该结构所需的数据,而没有任何行为,而这正是UserInfo所拥有的,您只想保存该数据。这并不意味着您有义务使用数据类,但这会更有意义。

答案 1 :(得分:0)

我也建议使用数据类。 如果没有正确指定hashCodeequals,就无法安全地在集合中使用UserInfo