内部类的伴生类怎么写?


#1
class TestAAAA {
    internal fun testAA() {

    }

    internal inner class TestB {

        fun testB() {

        }

        companion object {
            val A = "AAAAA"
        }
    }
}

这个样子会报错:companion object is not allowed here


#2

inner class 不是 static 的,但 companion 是 static 的,所以类要写在伴生对象里。你可以尝试 decompile 到 Java 代码。inner class 的 companion 静态,静态的对象无法访问动态对象的属性,所以 companion 的 class 同时不能是 inner 的,所以能 inner 的只有 class,不包括 object


京ICP备16022265号-2 Kotlin China 2017 - 2018
本站由腾讯云提供计算服务