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
之间创建了循环依赖关系,因此可以将其视为代码气味。没有更多的上下文,很难说更好的解决方案是什么样子。为什么要这样做?为什么不在活动中添加一个呢?