在我的onActivityResult
函数中,我有以下几行代码:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == CAMERA_REQUEST_CODE) {
val foodBitmap = Objects.requireNonNull(Objects.requireNonNull(data)!!.extras)!!["data"] as Bitmap?
food_image.setImageBitmap(foodBitmap)
}
super.onActivityResult(requestCode, resultCode, data)
}
对于foodBitmap
,它的推断类型是Bitmap
,但我需要确保它的类型是我正在使用的另一个函数的Bitmap
,该函数需要类型为Bitmap
的参数。我目前无法将foodBitmap
传递到该函数中,因为它期望Bitmap
,而不认为foodBitmap
是Bitmap
。我该如何修复那行代码?
foodBitmap
的推断类型不是Bitmap
,而是可为null的类型Bitmap?
。因此,您有三种选择:
-
将初始化
foodBitmap
的代码更改为:val foodBitmap = Objects.requireNonNull(Objects.requireNonNull(data)!!.extras)!!["data"] as Bitmap
-
在您的其他函数中,将参数更改为
Bitmap?
或 -
当您调用该函数时,请使用
let
函数:foodBitmap?.let { otherFunction(it) }
您可以简单地拥有以下内容:-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == CAMERA_REQUEST_CODE && data != null) {
val foodBitmap = data.extras?.get("data") as Bitmap
food_image.setImageBitmap(foodBitmap)
}
}
您将得到foodBitmap
作为Bitmap
,您可以直接将其传递到您的函数中。