我有一个简单的Kotlin类,它没有声明同伴对象。
class Foo
我想为伴侣对象创建一个扩展,即使没有指定。我不想创建一个空的伴侣对象。
fun Foo.Companion.bar()
如何?
编辑
- Me在
Foo
中添加一个空同伴 - 编译器在
Foo
中添加空伴侣
?
我想为伴侣对象创建一个扩展,即使没有指定。
为什么?
如何?
你不能。根据定义,扩展是扩展…。你不能扩展一个不存在的实体。请记住,扩展函数基本上是静态函数,它将扩展对象的实例作为第一个参数。所以你的例子:
fun Foo.Companion.bar()
可以翻译成:
public static void bar(Foo.Companion objectBeingExtended) { }
如果Foo.Companion
不存在,那应该如何工作?