You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Guava框架中@CompatibleWith注解的作用是什么?

聊聊com.google.errorprone.annotations.CompatibleWith注解

如果你在接触Error Prone相关代码或注解文档时碰到@CompatibleWith,它的作用其实清晰明确:

  • 核心用途:声明方法的某个参数必须和该方法所在类(或方法自身)的某个类型参数兼容。
  • 「兼容」的严格定义:按照Java语言规范(JLS)5.5.1的规定,两种类型之间存在引用转换关系——简单来说就是无需强制转换就能安全赋值的类型关联。

举个最经典的例子,Java集合框架里的Collection.contains方法,用这个注解标注后会是这样:

interface Collection<E> {
  boolean contains(@CompatibleWith("E") Object o);
}

这个注解的实际价值在于,给静态检查工具(比如Error Prone)明确规则:传入contains方法的参数o,其类型必须能安全转换为集合的泛型类型E。工具会在编译阶段帮你排查那些传入类型明显不匹配的调用,提前规避潜在的运行时问题。

内容的提问来源于stack exchange,提问作者Alexandru Severin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:50:10