我发现Kotlin令人着迷,但是我也很难找到任何有关如何正确处理空值的足够理解的文档。
我是Java开发人员,所以我应该可以很轻松地转向kotlin,但是我发现自己一直在为简单的东西而苦苦挣扎。
以下SQL查询:
@Query(value = "FROM Address a WHERE a.userId = :userId")
fun findAddressByuserId(@Param("userId") userId: String) : List<Address>?
我能以某种方式摆脱吗?在List<Address>?
的末尾?
SQL可能不返回任何内容,因此产生null。
,在查询之后,我尝试映射结果,但由于列表为空,现在需要!!
。
customerAddresses!!.map { a -> a.email = email.email }
谢谢!
答案 0 :(得分:4)
如果SQL不返回任何内容,则对应于找到的0个项目,即空列表,而不是根本没有列表。我还将对它进行相应的建模:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.bounds.width, height: 500)
}
这也将使您在使用@Query(value = "FROM Address a WHERE a.userId = :userId")
fun findAddressByUserId(@Param("userId") userId: String) : List<Address>
时省去它。
我不知道您使用的库是什么,但是如果它严格不允许返回类型不可为空,则可以编写一个包装函数,仅调用另一个函数。在这种情况下,请使用!!
(Elvis)运算符:
?: