если значение переменной не изменилось за последние 24 часа - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу запустить метод, который отправляет уведомления по электронной почте пользователям в Java.Но как я могу сказать программе «запустить метод, если значение переменной не изменилось за последние 24 часа»?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Просто: написав код для этого.Что вам понадобится:

  • своего рода хранилище данных, учитывающее время.Другими словами: простое поле в вашем классе не подойдет.Например, когда у вас есть class Person { String lastName ... ... отслеживание изменений непосредственно в поле объекта Person невозможно.Другими словами: вам нужно написать свой собственный код, который скажет «обновите значение для ключа X» ... и всякий раз, когда это происходит, вы сохраняете отметку времени изменения.Самый простой подход: есть методы setter (), которые хранят эту метку времени.Но эта идея не масштабируется и может привести к ужасному замыслу.
  • Служба, которая регулярно приходит и проверяет эти временные метки, чтобы затем принимать решения по этому поводу.

И подсказка: учитывая тот факт, что ваш вопрос очень широкий и неопределенный, не ожидайте более конкретных ответов (или даже кода), возвращающихся.

0 голосов
/ 22 февраля 2019

Краткий ответ: вы не можете.Вы можете сохранить копию значения переменной и запланировать выполнение задачи периодически, сравнить значение переменной с тем, которое вы сохранили, вызвать метод, если он отличается, и сохранить новое значение.

ОБНОВЛЕНИЕ

После обмена комментариями я укажу, что я не рекомендовал бы это решение в случае, когда вы можете контролировать присваивания переменной (например, если для этой переменной есть установщик, и выможет изменить код этого установщика), в этом случае я бы скорее рекомендовал решение, подобное тому, которое опубликовал GhostCat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...