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的一个实例时,另一个实例发生更改
打印出来时,timeForm和limitForm都会显示4小时后的时间。这是为什么?
那里只有一个实例。一个变量不是一个实例,而是一个参考。 'GeorgianCalendar limit = time;'不会创建'GeorgianCalendar'的新实例,它只是告诉'limit'引用'time'引用的同一个对象。 –