报告 Kotlin 对可被替换为 enumEntries()enumValues() 方法的调用。

使用 enumEntries() 可能会提高代码的性能。

该快速修复会将 enumValues() 替换为 enumEntries()

更多详细信息KT-61120 为 Enum.values() 提供了现代且高效的替代

注意enumEntries() 的返回值类型与 enumValues() 的返回值类型不同(EnumEntries<T> 继承自 List<T>,而不是 Array<T>)。 因此,在某些情况下,快速修复会插入额外的 .toTypedArray() 转换,以避免破坏代码,但在大多数情况下,替换将在没有该转换的情况下完成(例如,在 for 循环中)。

示例:


    enum class Version {
        V1, V2
    }

    enumValues().values().forEach { /* .. */ }
    val firstVersion = enumValues()[0]
    functionExpectingArray(enumValues())

在应用快速修复后:


    enum class Version {
        V1, V2
    }

    enumEntries().forEach { /* .. */ }
    val firstVersion = enumEntries()[0]
    functionExpectingArray(enumEntries().toTypedArray())