Android 需要属性getter或setter

Android 需要属性getter或setter,android,kotlin,Android,Kotlin,我想在类中使用位图变量。它导致“预期的属性getter或setter”错误。有什么问题? 错误显示在“bmp”周围:位图=空'。 我怎样才能解决这个问题 我不明白为什么我必须对类中的私有属性使用getter或setter class MyView(context: Context?) : View(context) { private var bmp? : Bitmap = null init { bmp = BitmapFactory.decodeResour

我想在类中使用位图变量。它导致“预期的属性getter或setter”错误。有什么问题? 错误显示在“bmp”周围:位图=空'。 我怎样才能解决这个问题

我不明白为什么我必须对类中的私有属性使用getter或setter

class MyView(context: Context?) : View(context) {
    private var bmp? : Bitmap = null

    init {
        bmp = BitmapFactory.decodeResource(resources, R.mipmap.ic_launcher)
    }

    override fun onDraw(canvas: Canvas?) {
        super.onDraw(canvas)
        canvas?.drawColor(Color.BLUE)
        canvas?.drawBitmap(bmp,10f,10f, null)
    }
}

问题是您要使用安全调用操作符创建可为null的对象,但语法错误。尽管将
放在变量处,但需要将其放在引用类型处

检查语法是否正确:

private var bmp : Bitmap? = null
然后您可以使用安全调用运算符访问此变量,如下所示:

bmp?.someMethodCall() // This line will never throw you null pointer exception because of ? (Safe call operator)
查看更多

请在下面的行中尝试

lateinit var bmp : Bitmap

使用NULL初始化位图时使用lateinit关键字如果要创建可为null的位图,请使用以下语法:
private var bmp:bitmap?=null
像这样使用“lateinit var bmp:位图”