ARouter在kotlin中使用,传递Int Long Double类型的参数由A activity传递到 B activity,在B Activity接收时出现空指针异常
java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
传递,String时
在A activity种传String类型的参数:
ARouter.getInstance().build("/b/BActivity").withString("key1", "第一个参数")
.navigation()
在B activity中接受参数
@Autowired
@JvmField
var key1 : String? = null
得到的结果位:"第一个参数"
即使在B中获取一个不存在的参数也不会空指针异常,如:
@Autowired
@JvmField
var key2 : String? = null
得到的结果位:null
传递java中的基本数据类型时
如:int
在A activity中
ARouter.getInstance().build("/b/BActivity").withInt("key1", 666).navigation()
在B activity中接受参数
@Autowired
@JvmField
var key1 : Long? = null
这时会报上面的错误,
原因可能是在传递的时候传递的是Java中的int(基本数据类型) 接收时为kotlin中的Int(它为一个类)