Почему телегреам-бота крашит, но если убрать проблемную строку, то возникает ошибка "Cannot resolve symbol"?
Пишу простенького телеграм бота. У меня есть метод:
public String waitUserInput() {
TelegramBot bot = new TelegramBot();
String userInput = "";
int lastUpdateId = 0; // переменная для хранения идентификатора последнего обновления
while (true) {
List<Update> updates = new ArrayList<>();
try {
GetUpdates getUpdates = new GetUpdates();
getUpdates.setOffset(lastUpdateId + 1);
updates = bot.execute(getUpdates);
} catch (TelegramApiException e) {
e.printStackTrace();
}
for (Update update : updates) {
if (update.hasMessage() && update.getMessage().hasText()) {
userInput = update.getMessage().getText();
lastUpdateId = update.getUpdateId(); // обновляем значение идентификатора последнего обновления
}
}
if (!userInput.isEmpty()) {
break;
}
try {
Thread.sleep(1000); // ждем 1 секунду перед повторной проверкой наличия новых сообщений
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return userInput;
}
Когда запускаю бота при вызове данного метода, его крашит. Судя по логам и тому что я нагуглил это происходит из-за "Вызова второго экземпляра бота". Как я понимаю проблема в строке:
TelegramBot bot = new TelegramBot;
Но если убрать её возникает ошибка:
Cannot resolve symbol bot
В строке
updates = bot.execute(getUpdates);
Как я понимаю, оно не распознает инициализированного бота. Хотя он есть в классе Main
:
public class Main {
public static void main(String[] args) throws TelegramApiException {
TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
try {
TelegramBot bot = new TelegramBot();
botsApi.registerBot(bot);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
}
Хотелось бы узнать, как можно исправить данную ошибку. Заранее спасибо!