当使用自定义回调(如android:onClick
)时,实际的方法是使用类似
mHandler.invoke(context, View.this);
根据invoke
上的doc:
java.lang.reflect.Method对象。调用(对象接收器,对象…抛出IllegalAccessException, IllegalArgumentException,InvocationTargetException
返回动态调用此方法的结果。相当于接收器。methodName(arg1, arg2,…)argN)。
如果调用正常完成,则返回值本身为返回。如果方法声明为返回原始类型,则返回值被装箱。如果返回类型为void,则返回null。
"box "是什么意思?如果实际的方法返回一个boolean
,我怎么能从Object
得到它?
装箱,也称为包装,是在对象中放置原语类型的过程,以便该原语可以用作引用对象。维基百科
在您的例子中,盒装原语将是布尔对象。我相信您应该能够将返回的非空对象直接转换为布尔对象或布尔原语。
在Boolean
对象上使用booleanValue()
,得到boolean
原语