Kim Sangdeuk
Kim Sangdeuk

Reputation: 81

property getter or setter expected

I want to use a bitmap var in a class. It makes 'property getter or setter expected' error. What is the problem? The error shows around 'bmp? : Bitmap = null'. How can I solve the problem?

And I don't understand why I must use getter or setter for private properties in a class.

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)
    }
}

Upvotes: 4

Views: 7307

Answers (2)

Mr.vicky patel
Mr.vicky patel

Reputation: 1849

Please try below line

lateinit var bmp : Bitmap

Upvotes: 3

Jeel Vankhede
Jeel Vankhede

Reputation: 12118

Issue is that you're going to create Nullable object using safe call operator, but your syntax is wrong. Inspite of placing ? at variable, you'll need to put it at Reference type.

Check correct syntax :

private var bmp : Bitmap? = null

And then you can access this variable with safe call operator like below :

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

Check out more here.

Upvotes: 9

Related Questions