以往的开发工作之中,Java编程语言少不了要跟各种异常作斗争,常见的异常种类包括空指针异常NullPointerException
Kotlin编程语言针对NullPionterException的处理。
使用
Kotlin 编程语言
// 对象默认是非空(不可为Null),声明字符串变量的代码
var strNotNull:String = ""
// 声明一个可空(可为Null)对象,字符串对象的代码如下所示:
var strCanNull:String?
编译器会检查和提示(根据你是不是使用的操作符【?】)
关于对象调用操作符使用(即?. 和?:的区分)
// 使用?.
code1?.code2
// 使用?:
code1?:code2
首先我们试图去从字面意义了解它
code1?.code2 翻译为 :if code1 Not Null 执行 code2;
code1?:code2 翻译为:if code1 Null 执行 code2;
?. 翻译为:If Not Null
?: 翻译为:If Null
如果是”?.“ 即表示if not null 并执行后续连接的操作。
如果是”?:“即表示 if null 并执行后续连接的操作。
基本语方法是分2层看:
1.问【?】前面的表达式code1是不是NULL。这个两个语法是相同的
2.基于?之后的后续操作符[.|:]
2.1 【“.”】即执行被问【?】者的所关链的操作code2(相当于code1.code2())。(此时默认前面表达式是Not Null);
2.2 【“:”】即执行其他表达式操作code2(此时默认了前面表达式是Null);
使用总结:
都是执行后者的执行语句
【?.】前者的相关调用
【?:】前者的无关调用
总结一下
Kotlin引入了空安全的概念,并在编译时开展对象是否为空的校验。相关的操作符说明概括如下:
1、声明对象实例时,在类型名称后面加问号,表示该对象可以为空;
2、调用对象方法时,在实例名称后面加问号,表示一旦实例为空就返回null;
3、新引入运算符“?:”,一旦实例为空就返回该运算符右边的表达式;
4、新引入运算符“!!”,通知编译器不做非空校验,运行时一旦发现实例为空就扔出异常;
网友评论