亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年09月02日 14:43:28   作者:ldxlz224  
這篇文章主要介紹了Kotlin修飾符lateinit(延遲初始化)案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
  • 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

當我們調用name的時候,會拋出異常

println(AddStr().name)

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

當輸出age屬性的時候則輸出 null

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

在這里插入圖片描述

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

在這里插入圖片描述

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

相關文章

  • JAVA實現(xiàn)深拷貝的幾種方式代碼

    JAVA實現(xiàn)深拷貝的幾種方式代碼

    這篇文章主要給大家介紹了關于JAVA實現(xiàn)深拷貝的幾種方式,在Java中深拷貝和淺拷貝是用來復制對象的兩種不同方式,深拷貝會對所有數(shù)據(jù)類型進行拷貝,包括對象所包含的內部對象,需要的朋友可以參考下
    2023-09-09
  • Java數(shù)組轉List及Stream的基本方法使用方法

    Java數(shù)組轉List及Stream的基本方法使用方法

    Java?的?Stream?流操作是一種簡潔而強大的處理集合數(shù)據(jù)的方式,允許對數(shù)據(jù)進行高效的操作,如過濾、映射、排序和聚合,這篇文章主要介紹了Java數(shù)組轉List及Stream的基本方法使用教程,需要的朋友可以參考下
    2024-08-08
  • Spring boot + mybatis + Vue.js + ElementUI 實現(xiàn)數(shù)據(jù)的增刪改查實例代碼(一)

    Spring boot + mybatis + Vue.js + ElementUI 實現(xiàn)數(shù)據(jù)的增刪改查實例代碼(一)

    這篇文章主要介紹了Spring boot + mybatis + Vue.js + ElementUI 實現(xiàn)數(shù)據(jù)的增刪改查實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • 如何使用Spring工具類動態(tài)匹配url

    如何使用Spring工具類動態(tài)匹配url

    這篇文章主要介紹了如何使用Spring工具類動態(tài)匹配url,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Spring Security的過濾器鏈機制

    Spring Security的過濾器鏈機制

    過濾器作為 ?Spring Security? 的重中之重,我們需要了解其中的機制,這樣我們才能根據(jù)業(yè)務需求的變化進行定制,今天來探討一下 ?Spring Security? 中的過濾器鏈機制
    2022-08-08
  • Java加載本地庫的方法之System.load與System.loadLibrary

    Java加載本地庫的方法之System.load與System.loadLibrary

    最近在做的工作要用到本地方法,所以下面這篇文章主要介紹了Java加載本地庫的方法之System.load與System.loadLibrary的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • Springboot @Value獲取值為空問題解決方案

    Springboot @Value獲取值為空問題解決方案

    這篇文章主要介紹了Springboot @Value獲取值為空問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Springboot啟動原理和自動配置原理解析

    Springboot啟動原理和自動配置原理解析

    這篇文章主要介紹了Springboot啟動原理和自動配置原理解析,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Spring Boot 入門教程

    Spring Boot 入門教程

    相信很多人都接觸spring框架很長時間了,每次搭建spring框架的時候都需要配置好多的jar、xml,做很多繁瑣重復的配置,稍微不留神就會出現(xiàn)各種各樣的問題。今天給大家介紹一下如何利用Spring Boot快速的搭建一個簡單的web應用
    2017-03-03
  • Java本地緩存工具之LoadingCache的使用詳解

    Java本地緩存工具之LoadingCache的使用詳解

    緩存,在我們日常開發(fā)中是必不可少的一種解決性能問題的方法。簡單的說,cache?就是為了提升系統(tǒng)性能而開辟的一塊內存空間。本文將為大家介紹一個Java本地緩存的工具——LoadingCache,感興趣的可以了解一下
    2021-12-12

最新評論