1,错误示例:
var mToken: String= ""
......
mToken = intent.getStringExtra(ConstantValue.FC_TOKEN)//这里在某种情况下,可能会为null
错误原因:kotlin初始化值中,如果没有加上问号,说明你声明的是一个非null的变量,即使初始化你给赋值了,如果在后面可能给赋值了一个null,还是不被允许的,会crash。
另: intent.getStringExtra()这个方法没有给设置默认值的写法,即 intent.getStringExtra("xxx","xxxx")这种方法是不存在的
2,正确写法:
//mToken虽然初始化为空字符串,但是可以为null
var mToken: String?= ""
......
mToken = intent.getStringExtra(ConstantValue.FC_TOKEN)//这里在某种情况下,可能会为null
或者
var mToken: String = ""
......
//如果这里为null ,将赋值给mToken空字符串(明显这种方法更好)
mToken = intent.getStringExtra(ConstantValue.FC_TOKEN)?:""//这里在某种情况下,可能会为null