此检查会检测两种类型的冗余:
filter… 调用。
只有在类型不同于结果类型的接收者上调用时,filterNotNull() 或 filterIsInstance 这类函数才有意义。
在其他情况下,可以忽略此类调用,因为结果将相同。mapNotNull 调用(及其变体)。
如果转换结果已保证为非空类型,则 mapNotNull 冗余。 在这种情况下,可以去掉 NotNull 后缀(例如 mapNotNull → map)。可以通过快速修复来省略冗余调用,或将其替换为更简单的替代方案。
示例:
fun test(list: List<String>) {
val x = list.filterNotNull() // 可被简化为 'list'
val y = list.filterIsInstance<String>() // 可被简化为 'list'
}
fun test(list: List<Int>) {
val x = list.mapNotNull { it + 1 } // 可被替换为 'map'
}