注解的基本概述

注解的基本概述:

1、注解,或者叫注释类型,英文单词是:Annotation。
注意:注解不是“//”,也不是多行注释。

2、注解Annotation是一种引用数据类型,编译之后也是生成“xxx.class”文件。

3、怎么自定义注解?语法格式是什么?

[修饰符列表] @interface 注解类型名 {
	// ...
}

4、注解怎么使用?用在什么地方?
第一:注解使用时的语法格式:
@注解类型名

第二:注解可以出现在类上,属性上,方法上,变量上等…
注解还可以出现在注解类型上面。

5、比如JDK自带注解:@Override
相信对这个写法不陌生吧,这个是子类重写父类的方法时,放在重写方法上面的注解。

有什么用呢?它是给编译器看的,表示这个方法是重写父类的方法。和运行期没有关系。

编译器看到后,会检查方法的格式是否和父类的方法格式是否一致,如果不一致,编译器提示报错。

看一下@Override注解的源代码:

   @Target(ElementType.METHOD)
   @Retention(RetentionPolicy.SOURCE)
   public @interface Override {

   }

我们可以看到@Override注解里面没有任何代码,这种注解称为标志注解,起到标志作用,跟空接口作用类似,起到标志作用。

@Override注解上面还有两个注解修饰,说明注解可以标注注解。

6、注解类型上面的注解,我们称之为:元注解。

(1)常见的元注解有哪些?
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)

(2)关于@Target注解:
这是一个元注解,用来标注“注解类型”的“注解”。
这个@Target注解用来标注“被标注的注解”可以出现在哪些位置上。

@Target(ElementType.METHOD):表示“被标注的注解”只能出现在方法上。

(3)关于@Retention注解:

这是一个元注解,用来标注“注解类型”的“注解”。
这个@Retention注解用来标注“被标注的注解”存储在哪个文件里。

@Retention(RetentionPolicy.SOURCE):表示“被标注的注解”只保存在java源文件中。
@Retention(RetentionPolicy.CLASS):表示“被标注的注解”只保存在class文件中。
@Retention(RetentionPolicy.RUNTIME):表示“被标注的注解”只保存在class文件中,并且能被反射机制反射到。

7、关于JDK自带的@Deprecated注解:

@Deprecated注解的作用是:表示“被标注的东西”已经过时了,会出现删除线提示。
比如:new Integer()这个构造方法就被@Deprecated标注了,说明此方法已经过时了。

8、如何自定义注解中的属性?
类型 属性名 ();
例如:int id();
String name();

9、注解中元素的类型可以是哪些?
byte, short, int, long, float, double, boolean, char
String, Class, 枚举类型
以及以上每一种类型的数组形式。

10、注解有什么用?

假设有这样一个需求:
定义了一个注解:@Id
这个注解只能出现在类上面,当这个类上有这个注解标注时,要求这个类中必须有一个int类型的id属性。如果类没有写int id,注解提示报错。

注解可以起到一个标志的作用,提醒的作用。
有注解标注时,它能给编译器或者我们程序员一种信息。
表示下面的代码被注解标注了,要小心了啊。

猜你喜欢

转载自blog.csdn.net/pipizhen_/article/details/107611228