I have created a dataclass
data class Something (
val a : String,
val b : Object,
val c : String
)
as later in my program I need the string representation of this dataclass I tried to extend the toString method.
override fun Something.toString() : String = a + b.result() + c
The problem here is, it does not allow extending(overriding) the toString funtion, as it is not applicable to top level functions.
How to properly override/extend the toString method of a custom dataclass?
In Kotlin, extension functions cannot override member functions, moreover, they are resolved statically. It implies that if you write an extension function
fun Something.toString() = ...
,s.toString()
won't be resolved to it, because member always wins.But in your case, nothing stops you from overriding
toString
insideSomething
class body, becausedata
classes can have bodies just like regular classes: