Java 反射赋值失败(具体看描述)

UncleBen 发布于 2016/10/13 19:07
阅读 234
收藏 0

    先上代码:

controllerField.setAccessible(true);
	contextField.setAccessible(true);
	ParcelServiceImpl controllerField1 = (ParcelServiceImpl) controllerField.get(this);
	setter.invoke(controllerField.get(this), contextField.get(this));
	ParcelServiceImpl controllerField2 = (ParcelServiceImpl) controllerField.get(this);

    其中,controllerField 是一个 Field 对象,contextField 是一个 Field 对象;

    下面贴 debug 的截图:

    首先,贴调用 invoke() 方法之前,变量的状态:

其中,ParcelServiceImpl 继承了 BaseService,controllerField 和 contextField 是当前类的对应的 Field 对象, 但是调用invoke() 方法后,ParcelServiceImpl(controllerField.get(this)) 的字段 request 仍然是 null,如图所示,invoke() 方法的入参 contextField.get(this) 并不为 null。

    希望知道的站友能说说,先谢了。

加载中
返回顶部
顶部