将 kotlin Lazy 与内部 class 一起使用时出现 NoClassDefFoundError

NoClassDefFoundError when use kotlin Lazy with inner class

只需考虑以下代码:

fun doAction(data: Any?, action: (Any?) -> Unit) {
    action(data)
}

class Outer {
    val a = "a"
    val b = "b"
    val inner by lazy { Inner() }

    inner class Inner {
        init {
            doAction(a) { println(it) }
            doAction(b) { println(it) }
        }
    }
}

fun main() {
    Outer().inner
}

我希望得到结果,打印“a”和“b”,但只打印“a”和一个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/example/Outer$Inner (wrong name: org/example/Outer$inner)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)

科特林版本:1.3.72

变量声明问题

当我将 val inner 更改为 val temp 时,不会出现错误