0
我有一段代碼如下(簡化來解釋問題)。從RAWDATA,我想過濾掉那些不具有converter
A轉換器類型,然後對剩餘的,轉換data
到listitem
如何從地圖返回非空項目的列表映射?
data class RawData(val type: String, val data: Data)
interface Converter {
fun convert(data: Data): ListItem
}
fun transform(): List<ListItem> {
val providerTypeMap = modelViewProvider.associateBy({it.type}, {it})
return rawDataList.filter {
converter[it.type] != null
}.map {
converter[it.type]?.create(it.data) ?: object: ListItem {}
}
}
注:我想返回類型爲List<ListItem>
而不是List<ListItem?>
。爲了做到這一點,我需要有這一行
converter[it.type]?.create(it.data) ?: object: ListItem {}
這對我的?
和?:
是很醜陋的,因爲我們知道到那時,我們已經篩選並只保留該converter[it.type] != null
是否有我的方式來擺脫我的代碼中的?
和?: ListItem{}
?
我會爲我的公關獲得一個紅色標記:P – Elye
我編輯了答案。覈實。 –
不錯的@Alexandr – Elye