我有一个类,它是字符串的解析结果,因此我必须强制执行toString()以返回该源字符串,而不是那些解析后的值。它还具有自定义的equals()/ hashCode()机制。仍将其标记为数据类有什么好处?

最佳答案

数据类的自动生成部分是:


componentN()函数可实现像for ((a, b, c) in dataClass) { ... }一样的解构

但是,数据类不能继承。 (您可以定义一个数据类,但是该数据类扩展了另一个非数据类。)

如果您认为某些类可以扩展您的类,则不要使其成为数据类。

如果您认为将来没有任何类可以扩展您的类,并且您可能需要使用destroy或copy()函数,则可以将其设为数据类。

10-06 02:02