1

Kotlin 提供了一种更好的方法来创建单例对象和伴随对象以通过类名访问类成员。酷这是!!

但是这两种声明的内存分配是如何工作的,这是否像 java 中的静态一样工作,并且一直保留到应用程序生命周期。

我已经通过了几个这样的资源和这个它对我没有多大帮助。任何指导方针!!

4

1 回答 1

3

我相信回答您问题的最简单方法是在 Kotlin 中制作简单的项目,而不是Tools - Kotlin - Show Kotlin bytecode在 IntelliJ Idea 中以及Decompile在打开的页面上 - 您将看到 Kotlin 代码的确切翻译内容。例如,您有 Kotlin 代码:

fun main(args: Array<String>) {
    Test.test()
}

class Test {

    companion object TestCompanion{
        fun test() {
            println("TestCompanion")
        }
    }

}

反编译结果:

public final class MainKt {
   public static final void main(@NotNull String[] args) {
      Test.TestCompanion.test();
   }
}

public final class Test {
   public static final Test.TestCompanion TestCompanion = new Test.TestCompanion();

   public static final class TestCompanion {
      public final void test() {
         System.out.println("TestCompanion");
      }
   }
}
于 2019-01-09T14:20:33.467 回答