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