Tag: 阴影

伴侣对象隐藏类 – 错误或功能?

在Kotlin中,以下代码似乎是合理的: data class Foo(val bar: String) { fun combine(other: Foo): Foo { return Foo(bar + other.bar) } companion object Foo { fun someHelper() {} } } 但是,它不会编译:类型Foo绑定到Foo.Foo而不是Foo ! 这是(语言设计或编译器)的错误,还是这是一个功能? 如果是后者,伴侣对象在场的情况下实现的习惯用法是什么? 当然,我会考虑一个解决方法: fun combine(other: my.package.Foo): my.package.Foo { return Foo(bar + other.bar) } 但那不是太好,现在呢?