我想否定以下表达式:
return SpUtils.loadEMail()?.isEmpty() ?: false
如果我添加一个!在表达之前,就像
return !SpUtils.loadEMail()?.isEmpty() ?: false
IDE(Android Studio)告诉我
在类型为kotlin.Boolean的可空接收器上只允许安全(?.)或非空的断言(!!.)调用?
我怎么否定这种表达方式呢?
你有可空引用的问题.
SpUtils.loadEMail()?.isEmpty()
此代码生成Boolean类型的值?这个mean表达式可以返回Boolean或null的实例.
我建议使用以下代码来解决您的问题:
return !(SpUtils().loadEMail()?.isEmpty() ?: false);
你尝试否定布尔?而不是布尔,elvis运算符返回!