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())