kotlin - 对象和伴随对象之间的区别以及如何测试它们
问题描述
我有一个数据类PersonRecord
。但是我从 API 收到的数据有不同的形式,我需要对其进行处理以提取 A。
- 第一个解决方案包括创建一个数据类
PersonForm
来表示 API 数据,然后创建一个独立的函数,该函数接受一个类实例的参数PersonForm
并返回一个类实例PersonRecord
。
查看一些stackoverflow帖子,我还找到了以下解决方案:
2.
data class PersonRecord(val name: String, val age: Int, val tel: String){
object ModelMapper {
fun from(form: PersonForm) =
PersonRecord(form.firstName + form.lastName, form.age, form.tel)
}
}
- 与两个相同,但使用伴随对象而不是对象。
有没有更惯用/有效/自然等的方法?在哪种情况下,每个都是首选?
谢谢。
解决方案
最惯用/最自然的方式是创建辅助构造函数:
data class PersonRecord(val name: String, val age: Int, val tel: String) {
constructor(form: PersonForm) : this(form.firstName + form.lastName, form.age, form.tel)
}
推荐阅读
- flutter - 我如何在 Flutter 中使用 Strems 从 API 获取实时数据
- java - 在具有特定字母的目录中查找文件
- python - 计数器 var 不计数
- c# - 如何将对象和整数存储在数组中?
- java - 按实体搜索,其中列表包含 Java Hibernate 中传递的列表中的至少一个值
- c - 可以在变量中使用 void 指针来写入和访问内存映射的硬件寄存器吗?
- c# - 如何在 Entity Framework Core 中更直接地建模 IdentityUser 之间的友谊
- javascript - 如何通过另一个数组属性组合和过滤数组属性
- python - RuntimeWarning:使用 scipy.stats.genextreme.fit() 时在减法中遇到无效值
- jenkins - 在 Jenkins 中,如何在不指定脚本路径的情况下为脚本化管道作业指定 SCM 参数?