Kotlin扩展在一个没有伴侣对象的类上



我有一个简单的Kotlin类,它没有声明同伴对象。

class Foo

我想为伴侣对象创建一个扩展,即使没有指定。我不想创建一个空的伴侣对象。

fun Foo.Companion.bar()

如何?

编辑

  1. Me在Foo中添加一个空同伴
  2. 编译器在Foo
  3. 中添加空伴侣

?

我想为伴侣对象创建一个扩展,即使没有指定。

为什么?

如何?

你不能。根据定义,扩展是扩展。你不能扩展一个不存在的实体。请记住,扩展函数基本上是静态函数,它将扩展对象的实例作为第一个参数。所以你的例子:

fun Foo.Companion.bar()

可以翻译成:

public static void bar(Foo.Companion objectBeingExtended) { }

如果Foo.Companion不存在,那应该如何工作?

最新更新