Создаю телеграм бота по гайду пытаюсь ввести getMessageId() выдает ошибку
код
public BotApiMethod<?> answerCallbackQuery(CallbackQuery callbackQuery) {
return EditMessageText.builder()
.chatId(callbackQuery.getMessage().getChatId())
.messageId(callbackQuery.getMessage().getMessageId())
.text("""
л
""")
.build();
Ошибка.
java: cannot find symbol
symbol: method getMessageId()
location: interface org.telegram.telegrambots.meta.api.objects.MaybeInaccessibleMessage
Ответы (1 шт):
Автор решения: AGorohov
→ Ссылка
Мне в этой ситуации помогло приведение к типу Message:
Message message = (Message) update.getCallbackQuery().getMessage();
Это работает, потому что
Message implements MaybeInaccessibleMessage
Но такой код не является безопасным, потому что там может как быть объект Message, так и не быть. Лучше в данном случае реализовать проверку, например:
if (callbackMessage instanceof MaybeInaccessibleMessage) {
System.out.println("Сообщение из CallbackQuery недоступно.");
return null;
} else if (callbackMessage instanceof Message) {
return (Message) callbackMessage;
}