我今天正在定义一个 Scala 类,我想“我需要一个equals
方法和一个hashCode
方法;和一个copy
方法也会很方便。我将把它变成一个案例类。”我的类已经有一堆其他代码,而且绝不是微不足道的。
很好,一切都有效,但是当教科书处理案例类时,所有示例都将它们定义为用作值类或“数据传输对象”。定义一个非平凡的案例类是否合适?上面描述的思考过程可以吗?还是我需要以不同的方式思考案例类?
A case class
提供,equals
, hashCode
and toString
基于主要构造函数参数的方法,所有这些都变成了val
也。此外,对象同伴得到一个apply
and an unapply
方法,同样基于主构造函数参数。
Also, a case class
继承自Serializable
和来自Product
,并且不应由其他类扩展。
如果所有这些都适合您的类,那么请随意将其声明为“案例类”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)