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

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

 更新時間:2021年09月02日 14:43:28   作者:ldxlz224  
這篇文章主要介紹了Kotlin修飾符lateinit(延遲初始化)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(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方法中進行了非空判斷
而 age 屬性添加了 @Nullable

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

println(AddStr().name)

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

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

  • lateinit 不能用來修飾基本數(shù)據(jù)類型,因為基本類型的屬性在類加載后的準備階段都會被初始化為默認值

在這里插入圖片描述

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

在這里插入圖片描述

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

相關(guān)文章

  • JetCache?緩存框架的使用及源碼解析(推薦)

    JetCache?緩存框架的使用及源碼解析(推薦)

    JetCache是一個基于Java的緩存系統(tǒng)封裝,提供統(tǒng)一的API和注解來簡化緩存的使用。本文重點給大家介紹JetCache?緩存框架的使用及源碼分析,感興趣的朋友一起看看吧
    2022-01-01
  • CountDownLatch源碼解析之a(chǎn)wait()

    CountDownLatch源碼解析之a(chǎn)wait()

    這篇文章主要為大家詳細解析了CountDownLatch源碼之a(chǎn)wait方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • java如何通過FileOutputStream字節(jié)流向文件中寫數(shù)據(jù)

    java如何通過FileOutputStream字節(jié)流向文件中寫數(shù)據(jù)

    這篇文章主要介紹了java如何通過FileOutputStream字節(jié)流向文件中寫數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • @scope("prototype") @loadbalanced注解負載均衡失效問題

    @scope("prototype") @loadbalanced注解負載均衡失效問題

    這篇文章主要為大家介紹了@scope("prototype") @loadbalanced注解負載均衡失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Java中的單例模式詳解(完整篇)

    Java中的單例模式詳解(完整篇)

    Java單例模式應(yīng)該是看起來以及用起來簡單的一種設(shè)計模式,但是就實現(xiàn)方式以及原理來說,也并不淺顯,下面這篇文章主要給大家介紹了關(guān)于Java中單例模式的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 200行java代碼實現(xiàn)2048小游戲

    200行java代碼實現(xiàn)2048小游戲

    這篇文章主要為大家詳細介紹了200行java代碼實現(xiàn)2048小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • SpringBoot項目從18.18M瘦身到0.18M的實現(xiàn)

    SpringBoot項目從18.18M瘦身到0.18M的實現(xiàn)

    本文主要介紹了SpringBoot項目從18.18M瘦身到0.18M的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Java中基于注解的代碼生成工具MapStruct映射使用詳解

    Java中基于注解的代碼生成工具MapStruct映射使用詳解

    MapStruct?作為一個基于注解的代碼生成工具,為我們提供了一種更加優(yōu)雅、高效的解決方案,本文主要為大家介紹了它的具體使用,感興趣的可以了解下
    2025-02-02
  • 全面解析Hibernate關(guān)聯(lián)操作、查詢操作、高級特性、并發(fā)處理機制

    全面解析Hibernate關(guān)聯(lián)操作、查詢操作、高級特性、并發(fā)處理機制

    這篇文章主要介紹了全面解析Hibernate關(guān)聯(lián)操作、查詢操作、高級特性、并發(fā)處理機制的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Java中怎樣使用JSON進行文件解析

    Java中怎樣使用JSON進行文件解析

    這篇文章主要介紹了Java中怎樣使用JSON進行文件解析問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

郁南县| 精河县| 泰宁县| 肃北| 蒲城县| 巫山县| 类乌齐县| 天长市| 高平市| 汉阴县| 马龙县| 苏尼特右旗| 石河子市| 化隆| 昭通市| 大方县| 大丰市| 怀柔区| 孙吴县| 乌兰县| 巫溪县| 永丰县| 军事| 丹寨县| 宁城县| 禄丰县| 千阳县| 资源县| 滨海县| 海盐县| 彰化县| 夏津县| 石河子市| 鸡西市| 台中县| 昌吉市| 甘孜县| 梅州市| 鸡东县| 蒙阴县| 永新县|