当与没有null安全的Java库交互时,如何在Kotlin中处理null安全?
通过研究,这里有一些东西我发现“工作”,但并不安全。
1.使用Kotlin的非null类型和返回null的Java方法:
1.将!!
运算符与返回null的Java方法一起使用:
1.假设一个Java Boolean永远不为null:在Java中,Boolean
可以是true
、false
或null
,但在Kotlin中,Boolean
只能是true
或false
。
在这些示例中,我的Kotlin编译器不会显示错误,因为它没有足够的信息来确定Java方法是否可以返回null。
1条答案
按热度按时间cbjzeqam1#
就像在Java中一样。假设该值可能为null,除非从中获取该值的方法的文档声明该值不会为null。如果它没有声明不返回null,则它是可空的。将其完全视为可空的Kotlin变量。因此,根据具体情况使用
?.
、?:
、if (foo != null)
或.orEmpty()
。Java还有不可空的
boolean
、long
、int
、char
、byte
、double
和float
。如果你看到小写的类型,你知道它是不可空的。