我今天定义了一个Scala类,我认为"我需要一个equals方法和一个hashCode方法;一个copy方法也很方便.我会把它变成一个案例类." 我的班级已经有了许多其他代码,并不是微不足道的.
很好,它都可以工作,但是当教科书处理案例类时,所有的例子都将它们定义为用作值类或"数据传输对象".定义一个非平凡的案例类是否合适?上面描述的思维过程是否正常,或者我是否需要以不同的方式考虑案例类?
Dan*_*ral 10
一个case class提供,equals,hashCode和toString基于主构造函数参数的方法,所有这一切都变成val了.此外,对象伴侣再次基于主构造函数参数获取a apply和unapply方法.
此外,case class继承Serializable和来自Product,不应由其他类扩展.
如果所有这些事情都适合您的课程,那么请随意将其声明为"案例类".
如果它没有后代,请随意.扩展案例类是个坏主意.
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |