我有一列表String
代表序列化数据,我想map
对象的列表。我使用下面的代码:映射,除非例外
strings.map { gson.fromJson(it, Model::class.java) }
// .doOtherStuff
然而,有时有分析错误和流只是停止,我希望能够恢复列表,直到故障点。例如,如果在项目7发生错误,我希望doOtherStuff
可以获取已成功处理的6个项目。
什么是最习惯的方式来做到这一点?我可以过滤列表,看看解析是否会成功,但这是一个昂贵的操作,要做两次。
你对这方面的性能影响有什么想法吗?我使用的列表非常大......我意识到这将是2N最糟糕的情况,但我想知道如果编译器以某种方式优化它。 –
您可以使用'mapNotNull'而不是'map'和'filterNotNull'来降低从2N到N的复杂度。 – mfulton26
我相信mapNotNull会忽略列表中的null值,但它们不是。他们只是不能被解析。 –