当前位置: 首页 > 知识库问答 >
问题:

可能为空值的Kotlin映射器[重复]

吕子真
2023-03-14

我有一堆数据类,其中的值需要为null,因为数据库可能会为某些字段返回null。

dueDilligence.info.extendedInfo.income.let { it }

据我所知,只有当Long是实际的Long而不是null时,才应该将该值传递给ApiClass构造函数,如果它是null,我会假设它将保持在构造中给出的默认值(在本例中为0)

Info.extendedinfo.income是一个Long,它也可能是null,但是如果是null,它应该映射为0。

但是既然数据类很长呢?而且映射器很长,存在类型不匹配,我似乎无法用letrun解决这个问题

共有1个答案

申屠涛
2023-03-14

您可以使用以下两个示例,第一个示例是将空值替换为“0”,第二个示例是从列表中删除空值:

val list = listOf<Long?>(null, 0L, 20L, 15L, 13L, 20L, null, null, 30L, 45L)
fun main(args: Array<String>){
   val listA = list.map { it ?: 0 }

   val listB = list.mapNotNull { it }

   println(listA)
   println(listB)
}

输出为:

  List A [0, 0, 20, 15, 13, 20, 0, 0, 30, 45]
  List B [0, 20, 15, 13, 20, 30, 45]
 类似资料:
  • 我有返回给我一些JSON后端。 我将其解析为我的类: 然后我从服务器(使用rxJava)检索数据,没有任何错误。但是我预料到了一个错误,因为我认为我应该做这样的事情(以防止GSON转换器错误,因为在我的JSON响应中不存在): 在从后端接收数据并将其解析到带有构造函数的SomeData类(不带def值)之后,notNullableValue的值==NULL。 据我所知,在Kotlin中不是可空值可

  • 我只想用hadoop mapreduce来排序我的日志行。我将该行的所有字段作为输出键,并将输出值设置为null。但是当运行时,在第行出现空指针异常 所以为什么hadoop映射的输出值不能为空?为什么hadoop reduce的输出值可以(我测试过)?

  • 在Java8中使用和我是新手。我目前正在使用库来实现一些ML算法。我有以下代码: 如果数据正确或为空,函数将返回一个新的。如何在之后过滤(删除)对象?

  • 我试图使用MapStruct在dto和实体对象之间映射convert,但是生成的映射器实现只返回空的映射对象。 BeermapperImpl 任何人都可以提供我的代码可能出错的地方?谢谢!

  • 我有以下代码: 但我有以下例外: 还有我的应用测试。特性: 我做错了什么?