报告从 Kotlin 对可被替换为 entries 属性读取的枚举类中 values() 方法的调用。

使用 Enum.entries 可能会提高代码的性能。

该快速修复会将 values() 替换为 entries

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

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

示例:


    enum class Version {
        V1, V2
    }

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

在应用快速修复后:


    enum class Version {
        V1, V2
    }

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