Kotlin如何从其他类访问主类变量

Kotlin如何从其他类访问主类变量,kotlin,Kotlin,这是我的主要课程: package com.example.myProject import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.GridLayout import androidx.core.view.marginLeft import kotlinx.android.synthetic.main.acti

这是我的主要课程:

package com.example.myProject

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.GridLayout
import androidx.core.view.marginLeft
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    var level : Int = 1

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //...
        var piece = Piece(this, 50)
    }
}
我还有二等舱:

data class Piece(
    var con: Context,
    var size : Int
) {

    init {
        //...
        //here I want to increment attribute level of the main class
        con.level++
    }
}

但是,即使我将上下文作为参数发送,也无法从那里访问该属性。知道我做错了什么吗?

上下文
类没有
级别
属性,即使具体类型
MainActivity
有。因此,请参考
main活动

data class Piece(
    var con: MainActivity,
    var size : Int
) {

这在
MainActivity
Piece
之间创建了循环依赖关系,因此可以将其视为代码气味。没有更多的上下文,很难说更好的解决方案是什么样子。

为什么要这样做?为什么不在活动中添加一个呢?