AnnBnnCnnD 2013-02-03 06:42 采纳率: 0%
浏览 1938

分配变量后莫名变成空值了

类:

public class Nomenklatura implements Serializable {
    ArrayList<String> data = new ArrayList<String>();
    ArrayList<String> data1 = new ArrayList<String>();
    ArrayList<String> data2 = new ArrayList<String>(6);
}

Activity:

public class Smena extends Activity {
    public Nomenklatura Asortiment;
    ArrayList<String> data = new ArrayList<String>();
    ArrayList<String> data1 = new ArrayList<String>();
    ArrayList<String> data2 = new ArrayList<String>(6);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.smena); 
        Intent i= getIntent();

        Asortiment = (Nomenklatura) i.getExtras().getSerializable("Nomenklatura");
        ArrayList<String> data = Asortiment.data;
        ArrayList<String> data1 = Asortiment.data1;
        ArrayList<String> data2= Asortiment.data2;
    }
}

在调试程序中,ArrayList<String> data =Asortiment.data;之前看到Asortiment.data的数据,但是在此操作之后,ArrayList data就为空了,不知道为什么?

  • 写回答

1条回答

  • csxrzeng 2015-06-05 02:12
    关注

    数组这种东西是引用类型。就是说你持有的只是一个引用,里面的数据可以被其他人修改。
    如果Asortiment在这之后把数据里面的东西清空了,则你这个data会为空。
    如果要保存一个副本,则应该进行数组的拷贝操作。
    ArrayList data = Asortiment.data.clone();

    评论

报告相同问题?

悬赏问题

  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题