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