我有一个类,它是字符串的解析结果,因此我必须强制执行toString()以返回该源字符串,而不是那些解析后的值。它还具有自定义的equals()/ hashCode()机制。仍将其标记为数据类有什么好处?
最佳答案
数据类的自动生成部分是:
componentN()
函数可实现像for ((a, b, c) in dataClass) { ... }
一样的解构
但是,数据类不能继承。 (您可以定义一个数据类,但是该数据类扩展了另一个非数据类。)
如果您认为某些类可以扩展您的类,则不要使其成为数据类。
如果您认为将来没有任何类可以扩展您的类,并且您可能需要使用destroy或copy()函数,则可以将其设为数据类。