1、在kotlin这中,定义如下类型,在判断不为null的语句里边,会发生类型转换: 登录后复制 fun main(){ var a:String? = "XXX" // a 类型为 String? 可能为 null // 在if 语句中,a 的类型为 String if(a != null){ println(a.length) } // 在下边的代码逻辑,a 的类型为 String? } 1.2.3.4.5.6.7.8. 2、不支持的只能转换情况: 定义全局变量时,不会进行智能类型转换 登录后复制 var a:String? = "XXX" // a 类型为 String? 可能为 null fun main(){ // 虽然判断不为空,但其他线程可能修改 a 的值,所以代码编译不会通过 if(a != null){ println(a.length) } } 1.2.3.4.5.6.7. 原创作者: u_15696481 转载于: https://blog.51cto.com/u_15696481/11315096