【发布时间】:2019-05-26 21:44:33
【问题描述】:
我正在使用 java 构建一个面向回复键盘的机器人,我需要它以不同的方式处理两种情况,其中最新消息的文本与前一条消息的文本相同。如何获取或存储上一条消息的文本作为公共变量?
我的概念建模如下:
我有一个大的 If-Else-If 语句,其中每个 If 块的条件与 if(update.hasMessage() && messageText.equals("aaa")) 的行一致,其中“aaa”是之前为用户弹出的回复键盘上出现的一些文本(因为键盘按钮将字符串作为文本发送到它们上,并且在 Telegram bot 的 api 中没有按钮按下事件的选项)。 messageText 定义为 update.getMessage().getText()。
我希望代码根据之前的消息来区别对待两种情况,其中 messageText 相同。 if(update.hasMessage() && messageText.equals("aaa") && previousMessage.equals("bbb")) { } else if(update.hasMessage() && messageText.equals("aaa") && previousMessage.equals("ccc")){}。如何在收到新消息时存储以前的消息而不更新它?
【问题讨论】:
-
您好,为什么您不使用标准的现有设计模式来控制用户的状态?比如状态模式?
标签: java telegram telegram-bot