最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin修飾符lateinit(延遲初始化)案例詳解

 更新時(shí)間:2021年09月02日 14:43:28   作者:ldxlz224  
這篇文章主要介紹了Kotlin修飾符lateinit(延遲初始化)案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
  • Kotlin定義變量一般有如下寫法
lateinit var name: String 
var age: String? = null

那么用lateinit 修飾和下面那種有什么區(qū)別呢,我們來看一下這兩行代碼反編譯成java代碼是什么樣子的。

   @NotNull
   public String name;
   @Nullable
   private String age;

   @NotNull
   public final String getName() {
      String var10000 = this.name;
      if (this.name == null) {
         Intrinsics.throwUninitializedPropertyAccessException("name");
      }

      return var10000;
   }

   public final void setName(@NotNull String var1) {
      Intrinsics.checkParameterIsNotNull(var1, "<set-?>");
      this.name = var1;
   }

   @Nullable
   public final String getAge() {
      return this.age;
   }

   public final void setAge(@Nullable String var1) {
      this.age = var1;
   }

可以看到在 name 屬性添加了 @NotNull注解,并且在getName和setName方法中進(jìn)行了非空判斷
而 age 屬性添加了 @Nullable

當(dāng)我們調(diào)用name的時(shí)候,會(huì)拋出異常

println(AddStr().name)

Exception in thread "main" kotlin.UninitializedPropertyAccessException: lateinit property name has not been initialized

當(dāng)輸出age屬性的時(shí)候則輸出 null

  • lateinit 不能用來修飾基本數(shù)據(jù)類型,因?yàn)榛绢愋偷膶傩栽陬惣虞d后的準(zhǔn)備階段都會(huì)被初始化為默認(rèn)值

在這里插入圖片描述

  • lateinit不能修飾val變量,只能修飾可變的屬性

在這里插入圖片描述

到此這篇關(guān)于Kotlin修飾符lateinit(延遲初始化)案例詳解的文章就介紹到這了,更多相關(guān)Kotlin修飾符lateinit(延遲初始化)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

曲靖市| 阳谷县| 黑山县| 西宁市| 安溪县| 昭通市| 外汇| 广汉市| 郴州市| 大田县| 华池县| 秀山| 湟源县| 开平市| 盐城市| 澄迈县| 绥芬河市| 南汇区| 加查县| 屯昌县| 永清县| 廉江市| 永和县| 株洲市| 西藏| 清徐县| 营口市| 灌阳县| 明光市| 德令哈市| 郧西县| 四会市| 汉寿县| 冀州市| 长治县| 扶余县| 泸西县| 奉节县| 芮城县| 渭源县| 五华县|