为了账号安全,请及时绑定邮箱和手机立即绑定

请问在Kotlin中,处理可空值、引用或转换这些值的惯用方法是什么?

请问在Kotlin中,处理可空值、引用或转换这些值的惯用方法是什么?

明月笑刀无情 2019-10-16 13:09:32
在Kotlin中,处理可空值、引用或转换这些值的惯用方法是什么?如果我有可空类型Xyz?,我希望引用它或将其转换为非空类型。Xyz..在科特林,这样做的习惯方式是什么?例如,此代码出错:val something: Xyz? = createPossiblyNullXyz()something.foo()  // Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Xyz?"但是,如果我首先检查NULL是允许的,为什么?val something: Xyz? = createPossiblyNullXyz()if (something != null) {     something.foo() }如何更改或不将值视为null而不要求if好吧,假设我真的不知道null?例如,在这里,我从一个可以保证存在的映射中检索一个值,并保证get()不是null..但我有个错误:val map = mapOf("a" to 65,"b" to 66,"c" to 67)val something = map.get("a")something.toLong()  // Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Int?"方法get()认为项目丢失并返回类型是可能的。Int?..因此,强制该值的类型不可为空的最佳方法是什么?
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

Val:xyz=create可能的NullXyz()!将在createPossiyNullXyz()返回NULL时抛出NPE。它更简单,并且遵循处理您知道的值不为NULL的约定

查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 1014 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信