Статический метод кеширует возвращаемые значения?

1

У меня есть статический метод, который возвращает java.util.Date. Когда я впервые назову его, он вернет правильную дату. Однако, когда я назову его снова, скажем, 2 минуты, он все равно возвращает первое свидание. Дата всегда создается в методе Date date = new Date(); и не хранится за его пределами.

Мой статический метод является частью довольно сложной системы классов Android, поэтому существует высокая вероятность того, что ошибка находится где-то в другом месте. Я просто хочу знать, возможно ли, что статический метод кэширует возвращаемые значения.

  • 6
    Нет, методы не кэшируют свои возвращаемые значения.
  • 0
    Вероятной ошибкой является то, что вы не переназначаете возвращаемую переменную (т. Е. Статическую Date ) или возвращаете объект Date созданный из одних и тех же значений каждый раз. Размещение вашего кода будет хорошим способом определить это.
Показать ещё 2 комментария
Теги:

1 ответ

2
Лучший ответ

Java-методы, статические или нет, никогда не кэшируют результаты, если вы явно не сделаете это самостоятельно. В частности, если метод имеет

Date date = new Date();

а затем производит некоторые вычисления в date, он вернет результат на основе new Date() с момента вызова метода.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню