Java基础最常用内置注解为@Override、@Deprecated和@SuppressWarnings,均位于java.lang包,由JVM支持,保留策略均为SOURCE。@Override用于方法重写校验;@Deprecated标记过时元素并触发编译警告;@SuppressWarnings选择性抑制特定编译警告。
Java基础中最常用的内置注解就三个:@Override、@Deprecated 和 @SuppressWarnings。它们都定义在 java.lang 包中,由JVM直接支持,无需额外引入,编译器会主动识别并执行相应检查或提示。
这个注解加在方法上,告诉编译器“我打算重写父类(或实现接口)里的某个方法”。编译器会严格校验:方法名、参数列表、返回类型是否完全匹配;若不匹配(比如拼错名字、少一个参数),立刻报错,而不是静默编译通过。
RetentionPolicy.SOURCE,即只在源码阶段有效,编译后.class里就没了
重写也能运行;但写了就能防错,尤其父类方法签名变更时能提前暴露问题加在类、方法、字段甚至参数上,表示该元素已被弃用,可能有缺陷、有更优替代,未来版本会移除。只要有人调用它,编译器就会给出黄色警告(不是错误,仍可编译)。
@deprecated 标签一起使用,说明为什么弃用、该用什么替代SOURCE,不影响运行时行为当某段代码确实需要绕过某些编译器警告(比如泛型未检查、变量未使用、序列化UID缺失),又不想全局关掉警告时,就用它精准压制。
"unchecked"(泛型强转警告)、"unused"(未使用变量)、"all"(全部,慎用)SOURCE,仅影响编译过程,不进入字节码serialVersionUID 可能在反序列化时出错基本上就这些。这三个注解不复杂,但容易忽略细节——比如误以为 @Override 是可选的装饰、或把 @SuppressWarnings 当成“消警告万能膏药”。理解它们的触发时机和设计意图,才能写出更健壮、更易维护的代码。