Annotation:工具与阅读的元信息 · AndroidX 源码指南
AAndroidX 源码指南
基础工具
基础工具 · androidx.collection

Annotation:工具与阅读的元信息Collection 1.7.0-alpha01

@MainThread、@RestrictTo、@RequiresApi 与 IntDef 的用途与边界

最后更新 2026-07-31

@RestrictTo(LIBRARY_GROUP_PREFIX)
class InternalHelper

androidx.annotation 提供源码级注解,不产生运行时行为。@MainThread/@UiThread/@WorkerThread 标注线程约束,@RestrictTo 限制 API 可见范围,@RequiresApi 声明版本门槛,@IntDef/@StringDef 为整型/字符串常量定义合法取值集合,@VisibleForTesting/@OpenForTesting 说明测试相关的可见性放宽。

它们如何生效

  • 编译期:Lint 检查器(如 annotation-experimental-lint 模块)读取注解并发出警告。
  • 工具期:IDE 和 API 文档(Metalava 生成 API dump)依赖注解生成导航与检查。
  • 阅读期:调用方阅读源码时,注解就是最直接的契约说明。

明确不解决什么

  • 不做运行时校验:@IntDef 不是运行时枚举检查。
  • 不强制线程:标注不拦截错误调用,只提示。
  • 不替代接口设计:可见性控制最终仍由 public/internal 决定,@RestrictTo 更多是给跨库使用者看的约定。