block
构建一个 JBlockEventInterceptor.
用于在 Java 中提供给参数为 EventInterceptor 的函数。例如:
public void run(EventInterceptor interceptor) {
// ...
}
public void run() {
run(EventInterceptors.block(context -> {
// ...
return EventResult.empty();
}));
}
Content copied to clipboard
而避免出现编译错误,也避免需要额外定义变量来接收 Lambda。 (因为 EventInterceptor 也是函数接口,但是单一函数被隐藏了。)
fun block(dispatcherContext: CoroutineContext = Dispatchers.IO, function: JBlockEventListener): EventListener(source)
创建一个阻塞事件处理器。
Parameters
dispatcherContext
阻塞逻辑的调度上下文。默认为 Dispatchers.IO。 会在 runInterruptible 中使用。
fun <E : Event> block(dispatcherContext: CoroutineContext = Dispatchers.IO, type: Class<E>, function: TypedJBlockEventListener<E>): EventListener(source)
创建一个阻塞事件处理器, 只处理 type 类型的事件。 其他类型的事件会直接返回 EventResult.invalid。
Parameters
dispatcherContext
阻塞逻辑的调度上下文。默认为 Dispatchers.IO。 会在 runInterruptible 中使用。