在java程序中,常见、常用的注解一般就是文档注解@Documented,继承注解@override,和警告抑制注解@SuppressWarnings。有时候还会看到一些其他注解,它们都是干什么用的,你知道吗?
什么是java注解?
Java注解就是在java源代码中嵌入的一些补充信息,以@符号开头,属于一种接口类型。
java注解有哪些作用?
1.可以生产帮助文档
2.跟踪代码依赖性,以实现替代配置文件的功能。
3.在编译时对java代码进行格式检查。
java注解可以大致区分为基本注解和元注解。
基本注解:
@Override:继承重写
指定/修饰重写的方法。实现父类的方法或接口。
@Deprecated:提示程序元素已过时或即将过时
注解类、接口、成员方法和成员变量等,标记此元素(类、接口、成员方法和成员变量等)已过时。使用被@Deprecated标记的元素,代码会被以删除线提示,并且编译器会提示编译警告。
例如使用被注解的类a :
aa a =new aa();
@SupperssWarnings:抑制编译器警告
有时候java 程序会有一些我们不想看到的警告,这是后我们就需要@SuppressWarnings注解来帮忙了。可以用它来注解一些发生错误的程序元素,来取消显示指定的编译器警告。
此注解会一直作用于指定的程序元素和该程序元素中的子元素。
@SafeVarargs:抑制警告(仅限static、final方法)
@FunctionalInterface:接口注解
用来注解某个含有一个抽象方法的,必须是函数式的接口。
元注解( java.lang.annotation ):
@Documented:文档注解。
被注解修饰的类可以被javaDoc工具提取文档。
@Target :@Target 注解用来指定一个注解的使用范围。它的参数是java.lang.annotation.ElementType 枚举类型的数组中的常量。
例如:@Target({ ElementType.FIELD }) 只能修饰常量。
枚举参数:
CONSTRUCTOR 用于构造方法
FIELD 用于成员变量(包括枚举常量)
LOCAL_VARIABLE 用于局部变量
METHOD 用于方法
PACKAGE 用于包
PARAMETER 用于类型参数(JDK 1.8新增)
TYPE 用于类、接口(包括注解类型)或 enum 声明
@Retention :生命周期时效注解
它用来提示程序被该注解修饰的成员变量的生命周期。它的参数是枚举类型,来自java.lang.annotation.RetentionPolicy 。
枚举参数:
SOURCE:在源文件中有效
CLASS:在 class 文件中有效
RUNTIME:在运行时有效
@Inherited:可以被继承的注解。
作用:当@Inherited注解一个父类时,那么继承父类的子类,也会像继承父类的方法一样继承父类的@Inherited注解。
@Repeatable:允许同一个程序元素多次使用一种注解。
@Native:修饰可被本地使用的成员变量。