画布?或View.onDraw()方法中的Canvas



Android Studio在View类中生成onDraw((方法,如下所示:

override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
}

但在谷歌的许多样本中(Codelabs、课程等(,我看到了另一个版本的

override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
}

哪个版本是正确的?为什么?

fun-onDraw(canvas:canvas?(

此案例画布可能为null。它接受null值,所以应用程序可能是崩溃的null画布对象。所以我们必须在所有地方处理null性。

onDraw(画布:画布(

这个案例画布不能为null。所以我们不关心可为null性。我们可以避免应用程序崩溃,所以这是最好的一个。

最新更新