Kotlin 如何访问伴随对象中的类构造函数参数

Kotlin 如何访问伴随对象中的类构造函数参数,kotlin,Kotlin,我想访问在伴随对象中传递给类构造函数的参数: 班级主页(私人val活动:字符串){ 伴星{ 有趣的事{ println(活动) } } } 主要内容(){ 家(“你好,世界”)。doSomething() 然而,当我运行这段代码时出现了一个错误,即活动是未解析的引用伴生对象基本上等同于Java静态嵌套类(这就是它如何在后台实现的),这意味着静态嵌套类的实例即使没有外部类的实例也可以存在。 例如: 如果你想要一个非静态的嵌套类(也称为内部类),你可以从内部类中引用外部类的属性。这是因为内部类的实

我想访问在伴随对象中传递给类构造函数的参数:

班级主页(私人val活动:字符串){
伴星{
有趣的事{
println(活动)
}
}
}
主要内容(){
家(“你好,世界”)。doSomething()

然而,当我运行这段代码时出现了一个错误,即
活动
是未解析的引用

伴生对象基本上等同于Java静态嵌套类(这就是它如何在后台实现的),这意味着静态嵌套类的实例即使没有外部类的实例也可以存在。 例如:

如果你想要一个非静态的嵌套类(也称为内部类),你可以从内部类中引用外部类的属性。这是因为内部类的实例与外部类的实例相关联。 例如:


有关更多信息,您还可以在此处查看有关嵌套(又名静态)和内部(又名非静态)类的Java文档:

伴生对象无权访问Home对象的实例。您不能调用
Home(“Hello World”).doSomething()
,但只能调用
Home.doSomething()
伴生对象就像一个静态方法,它不是一个实例。
class Outer(private val activity: String) {
    companion object {
        fun doSomething() {
            println("Hello, world!")
        }
    }
}

fun main() {
    Outer.doSomething() // no new Outer instance here
}
class Outer(private val activity: String) {
    inner class Inner {
        fun doSomething() {
            println(activity)
        }
    }
}

fun main() {
    Outer("Hello, world!").Inner().doSomething()
}