一、内置注解
Java内置注解 也称 Java标准注解,是Java JDK 中自带的注解。Java 中有许多标准注解,以下是一些常见的标准注解:
1. @Override:用于表示一个方法是重写父类中的方法。
2. @Deprecated:用于标记已经过时的方法或类,提醒开发者不再使用。
3. @SuppressWarnings:用于抑制编译器产生的警告信息。
4. @FunctionalInterface:用于标记一个接口是函数式接口,即只包含一个抽象方法的接口。
5. @SafeVarargs:用于消除关于可变参数方法的警告。
这只是一小部分 Java 中的标准注解,还有更多其他的注解可供使用。
二、示例介绍
2.1.@Override
2.1.1.测试案例
接口层代码:
接口的实现:
2.1.2.使用注意
@Override 用于标识该方法是重写父类的方法,通常用于标识接口的实现方法;
如果试图使用 @Override 标记一个实际上并没有覆写父类的方法时,java 编译器会告警。
2.1.3.源码
2.2.@Deprecated
2.2.1.测试案例
package com.cp.test3;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
@Component
public class TD01 {
@PostConstruct
public List<String> setData() {
List<String> list = new ArrayList<>();
t_test(list);
t_prod(list);
System.out.println("list = " + list);
return list;
}
@Deprecated
public void t_test(List<String> list){
list.add("我存放了测试数据!");
}
public void t_prod(List<String> list){
list.add("我存放了生产数据!");
}
}
2.2.2.运行结果
list = [我存放了测试数据!, 我存放了生产数据!]
2.2.3.使用注意
被标注的方法,在使用时如下所示,提示中会出现线条。被注解标注的方法,表示方法已过时或已弃用,提醒开发者谨慎使用,但依旧可以用。
2.2.4.源码
2.3.@SuppressWarnings
2.3.1.测试案例(一)
此时代码在强制转换时,编译器给了高亮显示的警告,在鼠标放到高亮显示处时,右下侧给出了警告原因和建议。此时提醒的是:Unchecked cast(未检查的强制转换)
2.3.2.使用示例
上面使用【单类型抑制警告】,加了注解以后,高亮显示就没了。一般来说,编译器提醒什么,value的值就是什么;例如下面
参数 | 作用 |
---|---|
deprecation | 使用了不赞成使用的类或方法时的警告 |
unchecked | 执行了未检查的转换时的警告,例如当使用集合时没有用泛型(Generics)来指定集合保存的类型 |
fallthrough | 当Switch程序块直接通往下一种情况而没有Break 时的警告 |
path | 在类路径、源文件路径等中有不存在的路径时的警告 |
serial | 当在可序列化的类上缺少serialVersionUID定义时的警告 |
finally | 任何finally子句不能正常完成时的警告 |
all | 所有的警告 |
但有时提醒没准确表达,也可以自定义,只要共同开发者知道也行;可以使用all,直接标识所有,例如下面使用【所有类型抑制警告】:
all 是抑制所有报错,但不规范的使用可能会为程序带来风险,所以一般不推荐用 all 。
2.3.3.测试案例(二)
2.3.4.使用示例
此时是使用多种类型的抑制警告,可以比较清晰的看到实用前后的代码对比。
2.3.5源码