【发布时间】:2021-11-23 09:25:24
【问题描述】:
我试图只更新一项,但下面的代码正在更新全部
logValue("之前的变化:$availabilityMasterList")
availabilityMasterList.filter { it.days.lowercase() == day.lowercase() }.forEach {
it.shifts.add(Shift(shiftname, "", ""))
}
logValue("changes broadcast : $availabilityMasterList")
之前和之后的日志输出
之前的更改:[MasterAvailableListData(days=Monday, drsAvailabilityDate=, id=0, shifts=[], edit=false), MasterAvailableListData(days=Tuesday, drsAvailabilityDate=, id=1, shifts=[], edit=假),MasterAvailableListData(天=星期三,drsAvailabilityDate=,id=2,班次=[],编辑=假),MasterAvailableListData(天=星期四,drsAvailabilityDate=,id=3,班次=[],编辑=假),MasterAvailableListData (days=Friday, drsAvailabilityDate=, id=4, shifts=[], edit=false), MasterAvailableListData(days=Saturday, drsAvailabilityDate=, id=5, shifts=[], edit=false), MasterAvailableListData(days=Sunday , drsAvailabilityDate=, id=6, shifts=[], edit=false)]
---------- below output after above query --------------------
2021-11-23 14:50:04.428 30467-30467/com.ohc.admin D/OhcDocHosp: ---------- 更改广播:[MasterAvailableListData(days=Monday, drsAvailabilityDate=, id=0, shifts=[Shift(shiftname=Afternoon, startTime=, endTime=)], edit=false), MasterAvailableListData(days=Tuesday, drsAvailabilityDate=, id= 1, shifts=[Shift(shiftname=Afternoon, startTime=, endTime=)], edit=false), MasterAvailableListData(days=Wednesday, drsAvailabilityDate=, id=2, shifts=[Shift(shiftname=Afternoon, startTime=, endTime =)],edit=false),MasterAvailableListData(days=Thursday,drsAvailabilityDate=,id=3,shifts=[Shift(shiftname=Afternoon,startTime=,endTime=)],edit=false),MasterAvailableListData(days=Friday, drsAvailabilityDate=, id=4, shifts=[Shift(shiftname=Afternoon, startTime=, endTime=)], edit=false), MasterAvailableListData(days=Saturday, drsAvailabilityDate=, id=5, shifts=[Shift(shiftname=Afternoon , startTime=, endTime=)], edit=false), MasterAvailableListData(days=Sunday, drsAvailabilityDate=, id=6, shifts=[Shift(shiftname=Afternoon, startTime=, endTime=)], edit=false)]
【问题讨论】:
-
我正在尝试每天更新一次
-
如果在 forEach 中打印元素会发生什么?你确定过滤器只返回一个元素吗?
-
我将代码更改如下)) logValue("it day : ${it.days} "+"\\n"+" ${it.shifts}") } 这是输出 it day : Monday \n [Shift(shiftname=Afternoon, startTime =, endTime=)]
-
很奇怪……反正不要用filter和forEach,用first()或者firstOrNull