19. Java 注解
Java 5 之后可以在源代码中嵌入一些补充信息,这种补充信息称为注解(Annotation),例如在方法覆盖中使用过的@Override 注解,注解都是**@符号开头**的。
注解并不能改变程序运行的结果,不会影响程序运行的性能。有些注解可以在编译时给用户提示或警告,有的注解可以在运行时读写字节码文件信息。
五个基本注解
无论是哪一种注解,本质上都一种数据类型,是一种接口类型。到 Java 8 为止 Java SE 提供 11 种内置注解。其中有 5 种是基本注解,它们来自于 java.lang 包。有 6 个是元注解(Meta Annotation),它们来自于 java.lang.annotation 包,自定义注解会用到元注解。
元注解就是负责注解其他的注解。
基本注解包括:@Override、@Deprecated、@SuppressWarnings、@SafeVarargs 和 @FunctionalInterface。下面逐一介绍一下。
@Override只能用于方法,子类覆盖父类方法(或者实现接口的方法)时可以 @Override 注解。编译器会检查被 @Override 注解的方法,确保该方法父类中存在的方法,否则会有编译错误。