Kotlin 可选,或类似的东西



我发现 Kotlin 很有意思,但我也发现很难找到任何关于如何正确处理 null 的足够可理解的文档。

我是一名 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 }

谢谢!

如果 SQL 不返回任何内容,则对应于 0 找到的项目,即空列表,而不是根本没有列表。我也会相应地建模:

@Query(value = "FROM Address a WHERE a.userId = :userId")
fun findAddressByUserId(@Param("userId") userId: String) : List<Address>

这也可以让您在使用时省略!!

我不知道你正在使用的库 - 但如果它严格不允许返回类型不可为空,那么你可以编写一个只调用另一个的包装函数。在这种情况下,请使用 ?: (Elvis( 运算符:

@Query(value = "FROM Address a WHERE a.userId = :userId")
private fun _findAddressByUserId(@Param("userId") userId: String) : List<Address>?
fun findAddressByUserId(userId: String) : List<Address> =
    _findAddressByUserId(userId) ?: emptyList()

相关内容

  • 没有找到相关文章

最新更新