ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 监听响应 >[info] 每一个监听函数都存在返回值(或者`void`),而框架则赋予了返回值一种特殊的含义。 >[success] **1.** 当函数存在返回值,且返回值类型为`com.forte.qqrobot.listener.result.ListenResult` 的时候,对于异常的抛出、函数的成功判定、HTTP响应值均会以此返回值为主。 > (标注了`@ListenBody`注解的情况下除外。) `ListenResult`是一个接口类型,其定义如下: ```java /** * * 此接口定义一个监听函数执行完成后的结果报告 * * 存在一个固定类型的返回值,此返回值应当由组件进行控制 * 且返回值应当允许被排序 * * @author ForteScarlet <[email]ForteScarlet@163.com> * @since JDK1.8 **/ public interface ListenResult<T> extends Comparable<ListenResult> { /** * 函数是否执行成功 * @return 是否成功 */ Boolean isSuccess(); /** * 是否阻断接下来的监听函数 * @return 是否阻断 */ Boolean isToBreak(); /** * 是否截断酷Q中低优先级的其他插件。 * 此返回值需要插件功能性的支持,否则将无效。 */ Boolean isToBreakPlugin(); /** * 获取执行结果响应 * @return 获取执行结果 */ T result(); /** * 获取返回值的排序值 * @return 排序值 */ int sortValue(); /** * 如果出现了异常,则此为异常 * @return 出现的异常(如果有的话 */ Throwable getError(); /** * 默认的排序方式为根据sortValue值进行排序 * @param o 对比对象 * @return 排序结果 */ @Override default int compareTo(ListenResult o) { return Integer.compare(sortValue(), o.sortValue()); } ``` 框架内部提供了一个简单的接口实现类:`com.forte.qqrobot.listener.result.ListenResultImpl` 此实现类存在一个无参构造与一个全参构造。 当然,你也可以自己去实现一个实现类来满足更加复杂的需求与判断。 >[success] **2.** 当监听函数的返回值不是此接口类型的时候,对于监听函数的执行结果判定请查看`成功判定与返回值`章节。