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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条