Android 房间列表或可变列表 return 类型
Android Room List or mutable list return type
我只是想知道是否有关于房间查询 return 类型的约定? return 用 List 好还是 MutableList 好?
通过 .toList() 和 .toMutableList() 在 Kotlin 中转换非常容易。我只是想创建一个眼睛方便的代码,这就是我询问最佳实践的原因。
为了看清楚,我说的是这些查询:
@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>
Room 将为结果创建一个 java.util.ArrayList
(您可以在构建项目后跳转到 Dao 的实现来检查这一点),因此在这种情况下您可以使用任一 return 类型,因为 ArrayList
实现了这两个接口。一般来说,Kotlin 中的最佳实践是使用只读 List
,只要你能摆脱它,所以我建议使用它。
我只是想知道是否有关于房间查询 return 类型的约定? return 用 List 好还是 MutableList 好? 通过 .toList() 和 .toMutableList() 在 Kotlin 中转换非常容易。我只是想创建一个眼睛方便的代码,这就是我询问最佳实践的原因。
为了看清楚,我说的是这些查询:
@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>
Room 将为结果创建一个 java.util.ArrayList
(您可以在构建项目后跳转到 Dao 的实现来检查这一点),因此在这种情况下您可以使用任一 return 类型,因为 ArrayList
实现了这两个接口。一般来说,Kotlin 中的最佳实践是使用只读 List
,只要你能摆脱它,所以我建议使用它。