簡體   English   中英

為什么我不能從Java端創建Kotlin對象?

[英]Why i can't create a Kotlin object from java side?

我正在用Java調查Kotlin互操作。

我找不到這樣的答案。 我有一個來自kotlin的物體:

object Test {
    fun main(args: Array<String>) {

    }
}

以反編譯的形式看起來像這樣:

public final class Test {
   public static final Test INSTANCE;

   public final void main(@NotNull String[] args) {
      Intrinsics.checkParameterIsNotNull(args, "args");
   }

   static {
      Test var0 = new Test();
      INSTANCE = var0;
   }
}

問題是:為什么當我嘗試創建對象時,看到Test具有私有訪問權限的錯誤? 反編譯的代碼中沒有私有的構造函數...

您無法創建object的實例。 這就是Kotlin定義單例的方式。 如果要實例化它,則必須將其聲明為普通class

如果實際上您確實希望它是一個單例,但是希望在Java端具有該單個實例,那么我想您可以將其引用為Test.INSTANCE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM