报告 Enum 上从 1.9 版开始会导致编译错误的 'declaringClass' 属性调用。

'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 或更高时,此检查才会报告。