我有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。
答案 0 :(得分:1)
Collection.filter功能非常适合
getTestDogs()
.filter { dog -> dog.personId == currentPerson.personId }
.toMutableList()