Tag: 不可空

在Java中为Kotlin编译器注释类型参数

在Java中,我有以下方法: public Optional<Foo> getFoo() { // always return some non-null value } 在Kotlin代码中,这个方法的返回类型是Optional<Foo!>! 。 通过使用@Nonnull注解,我可以将其降低到Optional<Foo!> (即只有Foo类型不再被空值检查)。 有没有一种方法来注释的方法,使Kotlin编译器空检查正确的返回值?

在Kotlin中,处理可空值的惯用方式是什么,引用或转换它们

如果我有一个可空类型Xyz? ,我想引用它或将其转换为不可为空的类型Xyz 。 Kotlin这样做的习惯用法是什么? 例如,这个代码是错误的: 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 ,我该如何将值更改或视为非null而不要求if检查? 例如,在这里我从地图中检索一个值,我可以保证存在,并且get()的结果不为null 。 但是我有一个错误: val map = mapOf("a" to 65,"b" to […]