kotlin覆盖protobuf类型toString

时间:2016-03-15 09:34:08

标签: protocol-buffers kotlin

假设我们有一些使用protoc生成的数据类。

谷歌toString()由于多种原因而糟透了,它的人性化程度不高,甚至在表示中设置了换行符,这会破坏日志和许多不期望多行日志的工具。

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

我试图用这样的扩展功能覆盖(或隐藏?)原始toString()

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

但它不会拿起扩展功能

1 个答案:

答案 0 :(得分:5)

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