多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# @ListenBreak >[info] 当你给你的监听函数排了序,但是想要在某个中间节点就跳出整个执行队列怎么办?可以来试试这个@ListenBreak注解。 >[danger] **※ 当监听函数返回值为`ListenResult`类型时,此注解失效,以返回值内容为准。** <br> 此注解存在一个参数: ```java /** * 判断是否截断的方式类型。存在byName注解 * 默认为必定截断 */ BreakType value() default BreakType.ALWAYS_BREAK; ``` 参数类型为每一个枚举类型。可至 [枚举](./枚举.md) 章节查阅。 当一个监听函数标注了此注解,且方法最终的返回值符合注解参数`value`的判断条件,则如果后续还有待执行的监听函数,将不会再继续执行,而是直接跳出执行队列,并开始响应结果。 ```java /** * 顺序为1,第一个执行 */ @Listen(value = MsgGetTypes.privateMsg, sort = 1) public void r1_bb(PrivateMsg msg){ System.out.println("coolq http api[r1]: " + msg.getMsg()); } /** * 顺序为2,第二个执行,且有@ListenBreak注解,会截断后续队列 */ @Listen(value = MsgGetTypes.privateMsg, sort = 2) @ListenBreak public void r1_b1(PrivateMsg msg){ System.out.println("coolq http api[r2]: " + msg.getMsg()); } /** * 顺序为3,但是被截断,不执行 */ @Listen(value = MsgGetTypes.privateMsg, sort = 3) public void r3(PrivateMsg msg){ System.out.println("coolq http api[r3]: " + msg.getMsg()); } ```