kotlin靜態(tài)變量在java的使用

一、使用

在Kotlin中的幾種聲明方式

object KtTest {
    
    const val a=1

    var b: Int=2

    @JvmField
    var c: Int=3

    @JvmStatic
    var d:Int=4
}

在Java中的調(diào)用方式

public class JavaTest {

   int a=KtTest.a;
   int b=KtTest.INSTANCE.getB();
   int c=KtTest.c;
   int d=KtTest.getD();
}

將Kotlin轉(zhuǎn)換成Java代碼:

public final class KtTest {
   public static final int a = 1;
   private static int b;
   @JvmField
   public static int c;
   private static int d;
   @NotNull
   public static final KtTest INSTANCE;

   public final int getB() {
      return b;
   }

   public final void setB(int var1) {
      b = var1;
   }

   /** @deprecated */
   // $FF: synthetic method
   @JvmStatic
   public static void getD$annotations() {
   }

   public static final int getD() {
      return d;
   }

   public static final void setD(int var0) {
      d = var0;
   }

   private KtTest() {
   }

   static {
      KtTest var0 = new KtTest();
      INSTANCE = var0;
      b = 2;
      c = 3;
      d = 4;
   }
}

二、總結(jié)

1、使用const val修飾的屬性為全局常量,轉(zhuǎn)換為java代碼是public static final修飾的,所以可以直接通過(guò)類名.調(diào)用
2、使用var修飾的屬性轉(zhuǎn)換為java代碼為私有成員屬性,并暴露get、set方法,通過(guò)類的單例對(duì)象調(diào)用方法獲取
3、使用@JvmField修飾的var屬性轉(zhuǎn)換為java代碼是public static修飾的靜態(tài)屬性,所以可以直接通過(guò)類名.調(diào)用
4、使用@JvmStatic修飾的var屬性轉(zhuǎn)換為java代碼是private static修飾的靜態(tài)屬性,可通過(guò)靜態(tài)方法調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容