在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贡献1821条经验 获得超6个赞
Val:xyz=create可能的NullXyz()!将在createPossiyNullXyz()返回NULL时抛出NPE。它更简单,并且遵循处理您知道的值不为NULL的约定
添加回答
举报
0/150
提交
取消