Java 将一个日历实例分配给另一个日历实例时出现问题

Java 将一个日历实例分配给另一个日历实例时出现问题,java,android,calendar,Java,Android,Calendar,我有两个日历实例变量,一个全局声明,另一个本地声明。 现在假设我将一个日历实例分配给另一个 Calendar m_CalGlobally = Calendar.getInstance(); Calendar calLocally = m_CalGlobally; 现在我的问题是,如果我对calLocally变量进行了任何更改,那么相同的更改将出现在m_CalGlobally实例变量中,为什么会发生这种情况,以及如何分配它。这是因为m_CalGlobally和calLocally都是对相同(相

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

Calendar m_CalGlobally = Calendar.getInstance();

Calendar calLocally = m_CalGlobally;

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

这是因为
m_CalGlobally
calLocally
都是对相同(相同)对象的引用。要使它们独立,您需要创建另一个日历实例。 假设你在第二行有一个打字错误(
Calendar calLocally=m\u CalGlobally;

肯定不行。 你喜欢这样吗

 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.