Flink源码中奇怪的注解

Flink源码中经常会出现以下注解:
@GuardedBy
@ThreadSafe
@Nullable
@PublicEvolving
......

这些注解在Flink中的作用主要分为几大类:

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

https://spotbugs.readthedocs.io/en/latest/annotations.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注