4

2 つのカレンダー インスタンス変数がありました。1 つはグローバルに宣言し、もう 1 つはローカルに宣言します。ここで、1 つのカレンダー インスタンスを別のカレンダー インスタンスに割り当てるとします。

Calendar m_CalGlobally = Calendar.getInstance();

Calendar calLocally = m_CalGlobally;

今私の問題は、calLocally 変数に変更を加えた場合、同じ変更が m_CalGlobally インスタンス変数に表示されます。これが起こる理由と、これを割り当てる方法は何ですか。

4

2 に答える 2

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.
于 2013-02-08T12:50:03.690 に答える
0

m_CalGlobally これは、との両方calLocallyが同じ (同一の) オブジェクトへの参照であるためです。それらを独立させるには、Calendar の別のインスタンスを作成する必要があります。2 行目にタイプミスがあるとします ( Calendar calLocally = m_CalGlobally;)

于 2013-02-08T12:41:48.870 に答える