Aaron_2014 2014-07-24 04:38 采纳率: 0%
浏览 3303

一个用intent传递对象的疑问

我写了两个Activity,一个是MainActivity,里面通过intent把一个实体类User对象传递过去,

    User user = new User();
    user.setId(1);
    user.setName("zhangsan");

    Intent intent = new Intent();
    intent.setClass(this, TwoActivity.class);
    intent.putExtra("user", user);

    startActivity(intent);
            Log.d("main", user+"");

另一个TwoActivity里面,接收这个User对象:
Intent intent = this.getIntent();
User user = (User) intent.getSerializableExtra("user");

    Log.d("two", user+"");

问题:打印出来的两个user竟然不是同一个地址?这也就是意味着user被传递过去竟然不是同一个对象了?这个我实在不是很理解,这怎么想都有点不科学啊,求解答。

  • 写回答

2条回答 默认 最新

  • zcdreaming 2014-07-25 15:25
    关注

    可以这样理解,当把一个对象从一个地方传到另一个地方,传递的不是引用,它的地址肯定会改变,世界上没有两个相同的地址。更深层次理解应该是传递前的处理:传递前根据该对象序列化,接收后反序列化再重新生成该对象,根据序列化和反序列化的规则,某些特征应该是一样的,包括值。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?