假设我们有一些使用protoc
生成的数据类。
谷歌toString()
由于多种原因而糟透了,它的人性化程度不高,甚至在表示中设置了换行符,这会破坏日志和许多不期望多行日志的工具。
所以问题是:我们如何为类这样的类重新定义自定义toString()?
我试图用这样的扩展功能覆盖(或隐藏?)原始toString()
fun Messages.DataClass.toString(): String {
return "some custom logic"
}
但它不会拿起扩展功能
答案 0 :(得分:5)
使用Kotlin无法更改类中现有方法的实现。类中定义的实例方法始终优先于具有相同签名的扩展函数。