kotlin 在不破坏现有代码的情况下,向函数返回的数据类添加信息的最佳方法是什么?

t1rydlwq  于 2023-05-01  发布在  Kotlin
关注(0)|答案(1)|浏览(126)

下面是我的代码:

data class User(val id: Int, name: String)
fun getUsers(): List<User>

现在,我想向User数据类添加一个age字段,但我担心两件事:
1.破解已经使用User的代码。
1.用用户不打算请求的信息加载内存。
我很想听听社区关于在Kotlin中向函数返回的数据类添加字段的最佳方法,而不会破坏现有代码,也不会增加不必要的内存开销。
谢谢大家!
我想到的一种方法是添加带有默认空值的age字段,然后始终或基于getUsers函数中的可选参数添加信息

data class User(val id: Int, name: String, age: Int? = null)
fun getUsers(includeAge: Boolean = true): List<User>

但是,我不确定这种方法是否解决了内存问题。另外,我正在考虑装饰器方法,但我不确定它是否是最好的解决方案。

qxsslcnc

qxsslcnc1#

你到底害怕什么被打破?通常在Java中,equals() + hashCode()方法是可以被破坏的。但是Kotlin为数据类生成了这些方法。
您的问题没有确切的答案,因为您提供的信息太少:这个类在项目中的使用类型。创建此用户的位置:本地还是只是解析从后端接收的一些数据?什么是商业案例?
如果你害怕破坏代码的某些部分,你最好从熟悉代码库的同事那里得到建议,或者提供更多的信息。
在任何情况下,根据您提供的信息,我不认为在添加可空的可选参数后会破坏某些东西。也许这将是最好的解决方案。

相关问题