Kotlin 覆盖 protobuf 类型 toString

Kotlin to override protobuf types toString

假设我们有一些数据 classes 是用 protoc.

生成的

Google 的 toString() 由于多种原因很糟糕,它不是很容易阅读,甚至在表示中放置换行符,这会搞砸日志和许多不期望多行日志的工具.

所以问题是:我们如何为这样的 class 重新定义自定义 toString()?

我试过用这样的扩展函数覆盖(或者隐藏?)原始 toString()

fun Messages.DataClass.toString(): String {
    return "some custom logic"
}

但它不会获取扩展功能。

无法使用 Kotlin 更改 class 中现有方法的实现。 class 中定义的实例方法始终优先于具有相同签名的扩展函数。