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 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码