我有一列表String
代表序列化數據,我想map
對象的列表。我使用下面的代碼:映射,除非例外
strings.map { gson.fromJson(it, Model::class.java) }
// .doOtherStuff
然而,有時有分析錯誤和流只是停止,我希望能夠恢復列表,直到故障點。例如,如果在項目7發生錯誤,我希望doOtherStuff
可以獲取已成功處理的6個項目。
什麼是最習慣的方式來做到這一點?我可以過濾列表,看看解析是否會成功,但這是一個昂貴的操作,要做兩次。
你對這方面的性能影響有什麼想法嗎?我使用的列表非常大......我意識到這將是2N最糟糕的情況,但我想知道如果編譯器以某種方式優化它。 –
您可以使用'mapNotNull'而不是'map'和'filterNotNull'來降低從2N到N的複雜度。 – mfulton26
我相信mapNotNull會忽略列表中的null值,但它們不是。他們只是不能被解析。 –