Android 房间列表或可变列表返回类型

Android Room List or mutable list return type

提问人:MrGyovka 提问时间:2/12/2019 最后编辑:codingbbqMrGyovka 更新时间:2/12/2019 访问量:1375

问:

我只是想知道房间查询返回类型是否有任何约定?最好返回 List 还是 MutableList? 在 Kotlin 中通过 .toList() 和 .toMutableList() 进行转换非常容易。我只是想创建一个方便的代码,这就是我询问最佳实践的原因。

为了看清楚,我说的是这些查询:

@Query("SELECT * FROM measured_attribute WHERE deliveryStatus = :status LIMIT 1000")
fun getAttributeEntityListByStatus(status: DeliveryStatus): List<MeasuredAttributeEntity>

@Query("SELECT * FROM measured_attribute WHERE 
  name = :speific AND 
  fk_patient = :id AND 
  creationTime>:beginTime ORDER BY creationTime")

fun getSpecificAttributeEntity(
   speific: String, 
   id: Long, 
   beginTime: Long
   ): MutableList<MeasuredAttributeEntity>
人造人 列表 科特林 可变

评论

0赞 TomH 2/12/2019
我会说一个清单。因此,在 kotlin 中,它遵循“val”不变性原则。如果要更改它,请调用 .toMutableList() 并将其分配给其他变量。:)
0赞 beigirad 2/12/2019
查看此处 stackoverflow.com/a/46445970/2389923
0赞 m0skit0 2/12/2019
只要你能侥幸逃脱,就不可变。讨论可变与不可变
0赞 MrGyovka 2/13/2019
谢谢你们!

答:

3赞 zsmb13 2/12/2019 #1

Room 将为结果创建一个(您可以在构建项目后跳转到 Dao 的实现来检查这一点),因此在这种情况下,您可以使用任一返回类型,因为 an 实现了两个接口。一般来说,Kotlin 的最佳做法是使用只读,只要你能逃脱它,所以我建议这样做。java.util.ArrayListArrayListList

评论

1赞 Mahdi-Malv 2/12/2019
@MrGyovka 如果答案对您有帮助,请考虑投票并接受答案。
1赞 MrGyovka 2/13/2019
还行!谢谢!这是一个可靠的答案。