【问题标题】:property getter or setter expected预期属性 getter 或 setter
【发布时间】:2019-04-10 12:59:37
【问题描述】:

我想在类中使用位图变量。它会产生“预期的属性获取器或设置器”错误。问题是什么? 错误显示在'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 初始化位图时使用 lateinit 关键字
  • 如果您想创建可为空的位图,请使用以下语法:private var bmp : Bitmap? = null
  • 这样使用 "lateinit var bmp : Bitmap"

标签: android kotlin


【解决方案1】:

问题是您将使用安全调用运算符创建 Nullable 对象,但您的语法错误。尽管将 ? 置于变量中,但您仍需要将其置于引用类型。

检查正确的语法:

private var bmp : Bitmap? = null

然后你可以使用下面的安全调用操作符访问这个变量:

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

查看更多here

【讨论】:

    【解决方案2】:

    请尝试以下行

    lateinit var bmp : Bitmap
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多