Kotlin学历之空安全

简介: Kotlin学历之空安全

简述


在java中Null是最常见的陷阱之一,在很多时候不得不写非空判断来增加代码的安全性,随着业务的增长,非空的判断会越来越多,难免会失去控制。kotlin在这个问题上就显得更加的智慧,通过操作符 ?、 !! 来约束可空属性。它是怎么实现的呢?往下看 - -

?操作符


?操作符表示 该属性可能为null ,在使用过程中需要加以判断。

var a: String = "abc"
a =null// 编译错误 根本无法运行
var a: String? = "abc"
a =null// 编译正常
//在使用过程中必须加 判断 不判断编译错误
if(a!=null) print((a as String).length ) else print(-1)
//上面写法有更简单的
a?.length ? : -1

image.png编译器代码演示

!!操作符


!!操作符 通过下面两次运行比较得出:声明属性b ,可能为空,在直接调用toString函数后控制台打印出null,在使用!!操作符之后直接抛出异常,这就说明在实际应用中,就相当于主动加了throw NullPointerException的异常捕获。

image.png

直接toString

image.png

使用操作符!!

总结


空安全是kotlin语言区别与java的一个很重的特性,在编程中应用很广泛,这样开发出来的程序更安全。本次学习就到这里,进入下个章节

目录
相关文章
|
10月前
|
安全 Java Kotlin
Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解
Kotlin中空安全操作符,异常处理和自定义异常,以及先决条件函数详解
96 0
|
安全 IDE JavaScript
From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了
Kotlin 是什么? 可以做什么? Android 官方开发语言从Java变为Kotlin,Java 有哪些问题? Kotlin的优点 Kotlin 特性(Features)
11552 1
From Java To Kotlin:空安全、扩展、函数、Lambda很详细,这次终于懂了
|
Java Kotlin
Kotlin学历之内联函数
Kotlin学历之内联函数
83 0
Kotlin学历之内联函数
|
Kotlin
Kotlin学历之导图
Kotlin学历之导图
69 0
Kotlin学历之导图
|
安全 Android开发 Kotlin
Kotlin学历之Android MVP架构实战
Kotlin学历之Android MVP架构实战
135 0
Kotlin学历之Android MVP架构实战
|
JSON 安全 Java
Kotlin学历之委托属性
Kotlin学历之委托属性
103 0
Kotlin学历之委托属性
|
Java Kotlin
Kotlin学历之扩展与委托
Kotlin学历之扩展与委托
98 0
Kotlin学历之扩展与委托
|
Java 编译器 Kotlin
Kotlin学历之可见性修饰符
Kotlin学历之可见性修饰符
82 0
Kotlin学历之可见性修饰符
|
Java 编译器 Kotlin
Kotlin学历之抽象类与接口
Kotlin学历之抽象类与接口
91 0
Kotlin学历之抽象类与接口
|
算法 Java 编译器
Kotlin学历之函数与Lambda表达式
Kotlin学历之函数与Lambda表达式
87 0