полный метод() в классе Calendar выполняет следующие операции:Полный метод() в java.util.Calendar
protected void complete()
заливка в любых неустановленных полей в календаре поле. Во-первых, вызывается метод computeTime(), если значение времени (миллисекундное смещение с эпохи) не было рассчитано из значений поля календаря. Затем вызывается метод computeFields() для вычисления всех значений полей календаря .
полный метод() имеет следующий код:
protected void complete()
{
if (!isTimeSet)
updateTime();
if (!areFieldsSet || !areAllFieldsSet) {
computeFields(); // fills in unset fields
areAllFieldsSet = areFieldsSet = true;
}
}
Мой вопрос заключается в чем смысл этой круговой работы ?? Первые значения от
protected int[] fields
используются для обновления значения
long time
с использованием метода computeTime(). А затем клапан времени используется для обновления значений в полях с использованием computeFields(). Значение в время и Поле будет синхронизировано после вызова метода computeTime(), правильно? или я что-то упустил здесь?
Для тех, кто может спросить, почему это так важно, хорошо, потому что порядок, в котором время пересчитывается в календаре, часто меняет время, которое мы получаем из getTime() (или так я читал) !!
'метод complete() имеет следующий код' - Остерегайтесь, что он зависит от реализации! – jFrenetic