程序包 cn.wjybxx.btree

批注接口 TaskInlinable


@Target(TYPE) @Retention(RUNTIME) public @interface TaskInlinable
该注解用于表示一个task是可以被内联的, 1.适用于SingleRunningChildBranchDecorator 2.该注解不继承,必须在类上显式定义才可以生效。 3.不能被内联的节点应当处理子节点的内联,避免内联中断。

内联条件

一个控制是否可被内联,需要满足以下条件: 1.最多只能有一个运行中的子节点,且不可以有运行中的钩子节点。 2.在子节点完成以前,当前节点没有额外的行为 -- 即心跳逻辑只是简单驱动子节点运行。 3.不能有特殊的事件处理逻辑,一定是直接派发给子节点。 4.当前节点收到取消信号时,子节点也一定收到取消信号。

Q:为什么使用注解,而不是虚方法? A:强调是否可内联是类型的信息,与实例状态无关 -- 更安全。

作者:
wjybxx date - 2024/7/24