【发布时间】:2020-07-20 12:50:47
【问题描述】:
所以我的Fragment 中有这段代码:
ProductParams params = (ProductParams) getArguments().getSerializable("product_params");
Log.i("TAG", "setupFragment: "+params.getChampionId());
params.setChampionId(100);
params = (ProductParams) getArguments().getSerializable("product_params");
Log.i("TAG", "setupFragment: "+params.getChampionId());
params.getChampionId() 第一个日志的值为 0。但令人惊讶的是,第二个日志的值为 100,而我希望它为 0(初始值)。为什么会这样?我怎样才能让getArguments().getSerializable("product_params") 返回初始值?
【问题讨论】:
-
第二个
Log返回您作为参数发送的初始数据。即,两者Log是相同的。请指定您要做什么... -
@Vishnu 我的问题令人困惑。我编辑了我的问题。谢谢。
-
您在
params.setChampionId(100);中将值设置为100! -
好的。但话又说回来,我将
params引用到来自参数的序列化对象。这是否意味着当我更改params对象的字段时,实际上我正在更改序列化对象?
标签: java android serialization