final DateFormat dateFormat = DateFormat.getDateTimeInstance() ;
GregorianCalendar time = new GregorianCalendar();
GregorianCalendar limit = time;
limit.add(GregorianCalendar.HOUR_OF_DAY, 4);
String timeForm = dateFormat.format(time.getTime());
String limitForm = dateFormat.format(limit.getTime());
System.out.println(timeForm);
System.out.println(limitForm);
出力は、「now」の後に4時間後の時間を設定します。GregorianCalendarのインスタンスを1つ変更すると、もう1つのインスタンスも同様に変更されます。
出力すると、timeFormとlimitFormの両方に4時間後の時刻が表示されます。何故ですか?
そこには1つのインスタンスしかありません。変数はインスタンスではなく、1つのインスタンスへの参照です。 'GeorgianCalendar limit = time;'は 'GeorgianCalendar'の新しいインスタンスを作成しません。単に' time'が参照しているのと同じオブジェクトを参照するよう 'limit'に指示します。 –