目录
3.@SuppressWarnings注解
4.@SafeVarargs注解(?)
5.@FunctionalInterface注解
2.@Documented文档注解
注解就像修饰符一样,使用时在前面增加@符号,用于修饰包、类、构造方法、域、方法、参数、局部变量的声明,这些信息被存在注解的“name=values”键值对中
注解不影响程序代码的运行,无论增加还是删除注释,代码都始终如一的执行
如果希望程序中的注解在运行时起到一定的作用,需要通过配套的工具对注解中的信息进行访问和处理,这种工具称为APT(注解处理工具)
APT注解处理工具负责提取注解中包含的元数据,并根据这些元数据增加额外功能
元数据的作用如下:
- 编写文档——通过注解中标识的元数据可以生成doc文档
- 代码分析——通过注解中标识元数据,使用反射对代码进行分析
- 编译检查——通过注解中标识的元数据,让编译器能够实现基本的编译检查,如@Overrride重写
一、基本注解
1.@Override注解
@Override注解用于指定方法的重写,强制一个子类必须覆盖父类的方法
public class OverrideDemo { public static void main(String[] args) { Father obj = new Son(); obj.Info(); } } class Father{ public void Info(){ System.out.println("父类的Info方法"); } } class Son extends Father{ // 使用@Override指定下面必须重写父类的方法 @Override public void Info(){ System.out.println("子类的Info方法"); } }
通过运行结果,可能看不出@Overrride注解的作用,此时将@Overrride注解删除,程序运行结果保持不变
因为@Override注解的作用是告诉编译器检查Son类的Info()方法,并保证父类也要有一个Info()方法,否则编译出错
2.@Deprecated注解
@Deprecated注解标识某个程序元素(接口、类、方法)已过时
public class DeprecatedDemo { public static void main(String[] args) { new DeprecatedDemo().oldMethod(); } @Deprecated public void oldMethod(){ System.out.println("使用过时的方法会被编译警告..."); } }
上述代码中,oldMethod()方法使用@Deprecated注解修饰该方法已过时,因此会引起编译器警告,而不是错误,结果依然可以输出
3.@SuppressWarnings注解
@SuppressWarning注解允许开发人员控制编译器警告的发布且会一直作用于该元素的所有子元素,可以标注在类、字段、方法、参数、构造方法以及局部变量上
语法格式如下:
import java.util.ArrayList; import java.util.List; // 忽略因使用泛型而未限制类型而产生的警告 @SuppressWarnings("rawtypes") public class SuppressWarningsDemo { public static void main(String[] args) { List list