@MakarMS

Почему переменные в методе сохраняют своё значение при следующем вызове?

Здравствуйте! Я уже 3 часа бьюсь над этим. Я создаю телеграм бота по продажам. У меня есть метод. При вызове я передаю ему путь к папке с товаром и подпись к товару. После вызова метод смотрит все файлы в этой дириктории, потом берёт первый файл, потом отправляет его человеку и удаляет отправленный файл.

Главная проблема в том, что когда происходит вызов метода второй раз, то переменные сохраняют своё значение с прошлого раза, и не обновляются. Т.е. я взял files[0](первый файл в дириктории), отправил его, удалил. Вызываю его второй раз, и он обратно отправляет мне files[0], хотя должен был выдать уже второй файл до удаления. Как сделать так метод заново сканировал папку на файлы, и по-новой заносил их в массив?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Тут есть несколько проблем:
1. Всю работу с файлами лучше вынести в отдельный сервис. Метод, который и ищет файл, и его отправляет, и еще и удаляет потом, и еще как-то умеет обрабатывать исключения, явно не отвечает принципу Single Responsibility. "String patch, String caption" лучше тоже обернуть в какой-то объект типа "Товар".
2. Если ваше приложение работает с файлами, пусть лучше эти файлы лежат в каком-то отдельном месте, а не в папке resources. Путь до хранилища файлов лучше указать в properties.
3. Используйте пакет java.nio. На дворе 2020й.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы