דָּוִדdavidov777 (daviddavidov777) wrote,
דָּוִדdavidov777
daviddavidov777

СПБ в 10

СПБ в 10

Не так давно, я написал небольшой класс для автоматического кэширования и обновления произвольных значений. Пользоваться им было очень легко — стоило лишь создать анонимный класс с перегруженным методом update, а потом, когда нужно, вызывать функции для пометки значения устаревшим и для получения самого значения:
public static void main(String[] args)
{
LazyValue ultimateQuestionOfLife = new LazyValue()
{
@Override
protected Integer update()
{
return findNewUltimateAnswer();
}
};

// пометить устаревшим
ultimateQuestionOfLife.invalidate();

// вызовется update()
System.out.println("Answer is: " + ultimateQuestionOfLife.get());

// update() не вызовется, вернется кэшированное значение
System.out.println("Answer is: " + ultimateQuestionOfLife.get());

// пометить устаревшим
ultimateQuestionOfLife.invalidate();

// update() вызовется во второй раз
System.out.println("Answer is: " + ultimateQuestionOfLife.get());
}


Тесты в маленькой программе-этюде проходили успешно, тогда как в большом рабочем проекте с использованием этого класса стала появляться ошибка переполнения стека — значения вызывали обновления друг друга, не имея другого источника информации. Этой ошибки не возникло бы, если перерассчет происходил каждый раз, а не в последний момент.

Недавно в интернете обнаружил столы и стулья от производителя интернет-магазина по продаже мебели на металлокаркасе от производителя. Мебель для дома, офиса, кафе, бара, ресторана. Мебель от производителя по выгодным ценам.
Subscribe

  • премьеры 2011

    огда мы делали комментарии, решили, что оптимальным вариантом будет авторизация через сторонние сервисы (вконтакте, фейсбук, openid и иже с ними).…

  • New age.................

    Заниматься еще больше торговлей!Понять куда пойдет тренд. Учиться , как можно больше задавать как можно больше вопросов.не терять время на всякую…

  • music

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments