# 监听上下文 >[info] 核心版本`1.5.0`后更新 核心版本`1.5.0`之后,我为所有的监听函数增加了一个新的动态参数:`ListenContext (监听上下文)` 。 ## 如何使用 >[success] 与监听消息、送信器一样,直接放在方法的参数中即可使用。 ## 提供功能 >[success] 监听上下文提供了两个**值域**,一个是单次监听生效的当前域,一个是全局永久生效的全局域。 ### **当前域** **当前域**中,你保存的值仅会在当前一次监听中生效。此域被当前一次监听中被触发的所有监听函数共享。 例如你接收到了一个消息,触发了三个监听函数,则此次监听中的三个监听函数所使用的**监听上下文**对象为同一个,并且可以通过**当前域**在不同的监听函数之间进行值传递。当前域一般会有`Normal`字样。 ### **全局域** 与**当前域**不同,**全局域**不会因不同的监听任务而发生改变,永久生效。全局域一般会有`Global`字样。 >[info] 简单来说,域就是一个`Map<String, Object>`,用来保存一些自定义的值。 ## API ```java /** * 默认的get方法。<br> * 会优先从当前域获取,获取不到则寻找全局域 * @param key key * @return 值 */ public Object get(String key); /** * 从当前域中获取 * @param key key * @return 值 */ public Object getNormal(String key); /** * 从全局域中获取 * @param key key * @return 值 */ public Object getGlobal(String key); /** * 默认的记录一个值,默认记录在当前域 * @param key 键 * @param value 值 */ public Object set(String key, Object value); /** * 记录一个当前域值 * @param key 键 * @param value 值 */ public Object setNormal(String key, Object value); /** * 记录一个全局域值 * @param key 键 * @param value 值 */ public Object setGlobal(String key, Object value); /** * 清除域。默认为清除当前域 */ public void clear(); /** * 清除全局域 */ public void clearGlobal(); /** * 清除全局域 */ public static void clearContext(); /** * 当前域keySet */ public Set<String> normalKeySet(); /** * 全局域keySet */ public Set<String> globalKeySet(); /** * 全局域keySet */ public static Set<String> keySet(); ```