Java注解

1.定义

注解(Annotation),一种代码级别的说明。它是JDK5.0及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

注解是以"@注解名"在代码中存在的。

2.作用

①编写文档:通过代码里标识的元数据生成文档。

② 代码分析:通过代码里标识的元数据对代码进行分析。

③编译检查:通过代码里标识的元数据让编译器能过实现基本的编译检查。

3.内置注解

内置注解有三种:@Override,@Deprecated,@SuppressWarnings。

3.1@Override

只能用在方法之上的,用来告诉别人这一个方法是重写父类的。

3.2@Deprecated

建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上。

3.3@SuppressWarnings

暂时把一些警告信息消息关闭。

其参数有:
deprecation,使用了过时的类或方法时的警告。
unchecked,执行了未检查的转换时的警告。
fallthrough,当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。
path,在类路径、源文件路径等中有不存在的路径时的警告。
serial,当在可序列化的类上缺少serialVersionUID 定义时的警告。
finally,任何 finally 子句不能正常完成时的警告。
all,以上所有情况的警告。

4.自定义注解

内置注解远远满足不了我们的需要,这时我们就要自定义注解了。

@interface用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型。可以通过default来声明参数的默认值。其定义类似于接口的定义。

@interface Person{
	String name() default "lavor_zl";
	int age();
}

5.元注解

就是定义注解的注解,也就是说这些元注解是的作用就是专门用来约束其它注解的注解。

四种元注解:@Target,@Retention,@Documented,@Inherited。

5.1@Retention

@Retention元注解,表示需要在什么级别保存该注释信息(生命周期)。

可选的RetentionPoicy参数包括:

RetentionPolicy.SOURCE::停留在java源文件,编译器被丢掉。

②RetentionPolicy.CLASS:停留在class文件中,但会被JVM丢弃(默认)。

③RetentionPolicy.RUNTIME:内存中的字节码,JVM将在运行时也保留注解,因此可以通过反射机制读取注解的信息。

5.2@Target

@Target元注解,默认值为任何元素,表示该注解用于什么地方。

可用的ElementType参数包括

①ElementType.CONSTRUCTOR::构造器声明。

②ElementType.FIELD:成员变量、对象、属性(包括enum实例)。

③ElementType.LOCAL_VARIABLE:局部变量声明。

④ElementType.METHOD:方法声明。

⑤ElementType.PACKAGE:包声明。

⑥ElementType.PARAMETER::参数声明。

⑦ElementType.TYPE:类、接口(包括注解类型)或enum声明。

5.3@Documented

@Documented元注解,将注解包含在JavaDoc中。

5.4@Inheried

@Inheried元注解,允许子类继承父类中的注解。


你可能感兴趣的:(Java基础,Java开发之路)