Java 了解Annotation(注解、注释)

Annotation(注解、注释)
给程序员和程序(编译器、运行时)看的。
通常情况下注解和Comment一样,只是给程序员看的。
特殊情况下,程序也可以看注解,如何看?通过反射看。
Comment 注释 就是我们平时写的 // /**/
不会像代码一样执行,主要是为让同事或自己能看懂代码什么意思。
给程序员看的,编译器把它当空格看待。

一、内置注解
系统自带的注解
@Override 重写 编译器会检查你修饰的方法是不是父类的方法,如果父类没
这个方法,会报错。—做检查用的。
@Deprecated 弃用、过期、不建议用。 它修饰的属性、方法等都不建议使用
不建议使用不代表不能用。最好不要用。一般都会有替代方式。如果你用了它
修饰的方法,一般会报一个警告。
@SuppressWarnings 压制警告、镇压警告。 作用消除警告。把警告去除。

元注解:描述注解的注解叫元注解
@Target 用于指定注解的使用范围(可选范围如下:)
ElementType.TYPE 仅用于类、接口、枚举
ElementType.FIELD 仅用于属性
ElementType.METHOD 仅用于方法(非构造方法)
ElementType.CONSTRUCTOR 仅用于构造方法
ElementType.PARAMETER 仅用于方法的参数
ElementType.LOCAL_VARIABLE 仅用于局部变量
ElementType.ANNOTATION_TYPE 仅用于注解
ElementType.PACKAGE
@Retention 保留。
RetentionPolicy.SOURCE 仅源文件(.java)阶段有效。
RetentionPolicy.CLASS 源文件(.java)阶段以及字节码文件阶
段(.class)有效。
RetentionPolicy.RUNTIME 源文件、字节码以及运行时都有效。
@Documented ------几乎不用
当你用@Documented修饰一个方法、类、包、属性等的时候。通过javadoc命令
生成API文档时,注解也会生成到文档中。默认(不写@Documented时)不会把
注解生成到文档中。
@Inherited-------几乎不用
它比较复杂,一旦用了这个注解修饰类。这个类的子类会继承父类的属性和方法。

二、自定义注解
使用 @interface 注解名
三、如何解读注解
反射获取和使用注解

为什么学习注解?
越往后,你用的框架,第三方jar包都会涉及到注解。而且都是通过反射
使用的注解。

什么时候会用到注解?
一般情况下,用不到你自己写的注解,除非哪天你NB了,写了个框架,
用到了注解,别人学习你的注解。

我们要用别人的框架,它里面有注解,我们要会用。

猜你喜欢

转载自blog.csdn.net/weixin_43791238/article/details/89405576