'Enum.getDeclaringClass' 是一种 "hidden" Java 函数,通常无法通过解析可见。 然而,它可通过合成属性可见,这是一个前端 bug。
更多详细信息:KT-49653 弃用并移除 Enum.declaringClass 合成属性
该快速修复会将调用替换为 'declaringJavaClass'。
示例:
fun <E: Enum<E>> foo(values: Array<E>) {
EnumSet.noneOf(values.first().declaringClass)
}
在应用快速修复后:
fun <E: Enum<E>> foo(values: Array<E>) {
EnumSet.noneOf(values.first().declaringJavaClass)
}
仅当项目或模块的 Kotlin 语言级别为 1.7 或更高时,此检查才会报告。