Flink源码中经常会出现以下注解:
@GuardedBy
@ThreadSafe
@Nullable
@PublicEvolving
......
这些注解在Flink中的作用主要分为几大类:
- 代码静态检查:
@GuardedBy 检查操作被注解的对象/方法前是否对指定锁对象进行加锁 @ThreadSafe 类是线程安全的 @Nullable 被标注对象可以为空
- 接口迭代状态&发版对比:
@PublicEvolving 类/方法相对稳定,可以被外部调用,但接口/签名(返回类型+参数类型)可能会发生变化 @Public 类/方法相对稳定,只有跨大版本才可能进行修改 @Experimental 实验性质,不稳定,可能被修改或移除
- 文档:
@Documentation 用于生成文档