注解(Annotation)和注释一样,不影响程序运行逻辑,但是注解也可以被编译允许,相当于嵌入代码的补充信息。
介绍:
使用注解(Annotation)时要在其前面增加@符号,并把Annotation当作一个修饰符使用。
@Interface是注解类的意思,不是接口。
三个基本的注解:
1、@Override:限定某个方法,是重写父类方法,该注解只能用于方法。
在子类中如果重写了父类方法,则在该方法前加上@Override。
如果不加,编译器也会去检查;
加上之后,如果真的重写了则没有区别,如果没有真的重写则会报错。
2、@Deprecated:用于表示某个程序元素(类、方法等)已过时。不是该注解过时。
过时不代表不可以使用,只是不推荐使用。
用作旧版本到新版本的过度。
3、@SuppressWarnings:抑制编译器警告。
当代码有警告,但是不想看到警告,可以使用该注解警告。
格式:
@SuppressWarnings({警告信息})
警告信息详解
四种元注解:
元注解是修饰注解的注解。
1、@Retention:指定注解的范围,有三种(SOURCE, CLASS, RUNTIME)
RetentionPolicy.SOURCE:编译器使用后,直接丢弃。
RetentionPolicy.CLASS:编译器将把注解记录在class文件主,当运行Java程序时,JVM不会保留注解。默认值
RetentionPolicy.RUNTIME:在CLASS基础上,JVM会保留注释,可以通过反射获取该注解。
2、@Target:指定注解在哪些地方可以使用。
3、@Documented:指定该注解是否在javadoc体现。
即被该注解注解的注解将在javadoc工具提取成文档时,可以看到。
4、@Inherited:子类会继承父类注解。
被该注解(名词A)注解(动词)的注解(名词B)注解(动词)的类有子类的话,子类将自动继承注解(名词B)。