我尝试在 Bundle 中传递值为 0.0 的 mPriceModifier。但得到这个例外
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Float
mPriceModifier初始化
private var mPriceModifier: Double = 0.0
在进入 Bundle 之前,mPriceModifier 只能使用 1 次。无论如何,在调试模式下,在放入之前它会显示 0.0。
有捆绑代码
mBundle.apply {
putFloat("priceModifier", mPriceModifier.toFloat())
}
mNavController.navigate(R.id.action_global_processState, mBundle)
mPriceModifier 是 NonNullableType。 nav_graph 也没有该参数的“可为空”属性。
如果我添加“if”这样的表达式
if(mPriceModifier != 0.0){
mBundle.apply{
putFloat("priceModifier", mPriceModifier.toFloat())
}
}
然后它会跳过这个表达式,但无论如何给我这个例外
不确定这是否是问题所在,但我可能会将变量声明为浮点数,因此在将值放入包中时不需要从双精度转换为浮点数。尝试以下操作并删除它 (mPriceModifier.toFloat())
private var mPriceModifier: Float = 0.0f
此外,请检查/分享您如何读取该值。问题也可能存在。