zju*_*asz 6 language-design kotlin
我当然排除了任何涉及违反数据类规则的原因。因此,如果你知道你不需要继承它,例如(尽管我的理解是规则在 Kotlin 1.1 中消失了)。
data修饰符使 Kotlin基于主构造函数为最常见 (%80) 场景生成常用方法,如toString, hashCode, equals。
这显示了为什么只有少数类应该是 3 个原因data:
大多数非数据类在主构造函数和类主体中都定义了混合属性。此外,主构造函数通常具有不是字段的参数(但有助于初始化主体中更复杂的字段)。换句话说,data具有非常严格的要求,常规课程很少满足。
除了第 1 点,创建一个类data可能会损害它的可扩展性。即使有问题的类的布局符合data类的规则,后来有人可能想在类的主体中添加另一个属性。在这种情况下,他将不得不手动覆盖,hashCode因为它可能会在某处使用。
标记一个类会data向阅读代码的人发送一条消息,即您打算将此类用作数据职业。标记其他类会产生误导。
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |