基础工具
基础工具 · androidx.collection
Annotation:工具与阅读的元信息Collection 1.7.0-alpha01
@MainThread、@RestrictTo、@RequiresApi 与 IntDef 的用途与边界
最后更新 2026-07-31
@RestrictTo(LIBRARY_GROUP_PREFIX)
class InternalHelperandroidx.annotation 提供源码级注解,不产生运行时行为。@MainThread/@UiThread/@WorkerThread 标注线程约束,@RestrictTo 限制 API 可见范围,@RequiresApi 声明版本门槛,@IntDef/@StringDef 为整型/字符串常量定义合法取值集合,@VisibleForTesting/@OpenForTesting 说明测试相关的可见性放宽。
它们如何生效
- 编译期:Lint 检查器(如
annotation-experimental-lint模块)读取注解并发出警告。 - 工具期:IDE 和 API 文档(Metalava 生成 API dump)依赖注解生成导航与检查。
- 阅读期:调用方阅读源码时,注解就是最直接的契约说明。
明确不解决什么
- 不做运行时校验:
@IntDef不是运行时枚举检查。 - 不强制线程:标注不拦截错误调用,只提示。
- 不替代接口设计:可见性控制最终仍由
public/internal决定,@RestrictTo更多是给跨库使用者看的约定。