将一个日历实例分配给另一个的问题

时间:2013-02-08 12:39:48

标签: java android calendar

我有两个Calendar Instance变量,一个是全局声明,另一个是本地声明。 现在假设我将一个日历实例分配给另一个日历实例,如

Calendar m_CalGlobally = Calendar.getInstance();

Calendar calLocally = m_CalGlobally;

现在我的问题是如果我在calLocally变量中进行任何更改,m_CalGlobally实例变量中会出现相同的更改,为什么会发生这种情况,以及分配它的方式是什么。

2 个答案:

答案 0 :(得分:7)

绝对不会工作。 这样做

 Calendar m_CalGlobally = Calendar.getInstance();

 Calendar calLocally = (Calendar)m_CalGlobally.clone(); // Proper way to assign this.
//This will give you calender with same properties and also the changes of it wont be reflected on m_CalGlobally because assigning with equal operator make them point to same reference.

答案 1 :(得分:0)

这是因为m_CalGloballycalLocally都是对同一个(相同)对象的引用。要让它们独立,您需要创建另一个Calendar实例。 假设您在第二行(Calendar calLocally = m_CalGlobally;

中有拼写错误