向对象2请求的数据具有对象1的ID作为属性

时间:2019-05-01 17:28:48

标签: android kotlin

我有2个数据类,人和狗。 Person具有以下属性:

personId,姓名,年龄,isFemale

data class Person (
  val personId: Int,
  val name: String,
  val age: Int,
  val isFemale: Boolean
)

狗具有以下属性:

dogId,personId,姓名,年龄,isFemale

data class Dog (
  val dogId: Int,
  val personId: Int,
  val name: String,
  val age: Int,
  val isFemale: Boolean
)

我想通过使用id属性来请求一个人的所有狗。但是我收到一条错误消息,说明dogs没有初始化且为空。

fun getTestPersons(): Array<Person>{
  return arrayOf(): Array<Person>(
   Person(1, "Harry", 35, false)
)
}

fun getTestDogs(): Array<Dog>{
  return arrayOf(
   Dog(1, 1, "Bert", 4, false), Dog(2, 1, "Linda", 6, true)
)
}

currentPerson已用例如第一个初始化。

lateinit var dogs: MutableList<Dog>
for(dog in getTestDogs()){
if(dog.personId == currentPerson.personId){
  dogs.add(dog)
 }
}

预期:一个包含特定人物所有狗的MutableList。

1 个答案:

答案 0 :(得分:1)

Collection.filter功能非常适合

getTestDogs()
  .filter { dog -> dog.personId == currentPerson.personId }
  .toMutableList()