,,Kotlin修饰符lateinit(延迟初始化)案例详解

,,Kotlin修饰符lateinit(延迟初始化)案例详解

本文主要介绍Kotlin修饰符lateinit(延迟初始化)案例的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。

科特林将变量定义如下

lateinit变量名称:字符串

var年龄:字符串?=空

那么用lateinit装修和下面这个有什么区别呢?让我们看看这两行代码反编译成java代码时是什么样子。

@NotNull

公共字符串名称;

@Nullable

私弦年龄;

@NotNull

公共最终字符串getName() {

String var10000=this.name

if (this.name==null) {

intrinsics . throwuniinitializedpropertyaccessexception(' name ');

}

返回var10000

}

public final void set name(@ not null String var 1){

intrinsic s . checkparametersinotnull(var 1,' set-?');

this.name=var1

}

@Nullable

公共最终字符串getAge() {

返回this.age

}

public final void setAge(@ Nullable String var 1){

this.age=var1

}

可以看到@NotNull注释被添加到name属性中,非空判断是在getName和setName方法中做出的。

年龄属性增加了@Nullable。

当我们调用name时,我们抛出一个异常。

println(AddStr()。姓名)

线程“main”kot Lin中出现异常。uniinitializedpropertyaccessexception:late init属性名尚未初始化

输出年龄属性时输出null。

Lateinit不能用于修饰基本数据类型,因为基本类型的属性是在类加载后的准备阶段初始化为默认值的。

Lateinit不能修改val变量,只能修改变量属性。

本文对Kotlin修饰语lateinit的详细解释到此为止。有关Kotlin修改器lateinit的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: