注解(Annotation)是一种元数据,它提供关于程序的信息,但本身不是程序的一部分。注解不会影响被注解代码的运行。
现在让我们来看看 Java 中存在的不同类型的注解,如下所列:
- 预定义注解:@Deprecated, @Override, @SuppressWarnings, @SafeVarargs, @FunctionalInterface。
- 元注解:@Retention, @Documented, @Target, @Inherited, @Repeatable。
- 自定义注解:这些是由用户定义的。(我们将在这个模块中学习如何创建自定义注解)。
现在,你一定想知道我们如何创建自己的 Java 注解,为此,请按顺序参考以下简单步骤:
- 要创建你自己的 Java 注解,你必须使用 @interface Annotation_name,这将为你创建一个新的 Java 注解。
- @interface 将描述新注解类型的声明。
- 在给注解命名后,你需要创建一个语句块,在其中你可以声明一些变量。
继续往下,Java 中可以定义三种形式的注解,如下所示:
- 标记注解:这些注解内部没有声明或定义任何变量。
- 单值注解:这些注解内部只声明或定义了一个变量。
- 多值注解:这些注解内部可以声明和定义多个类型的多个变量。
实现:
让我们以一个名为 books_data 的自定义注解为例,来理解不同形式的注解是如何声明的。
@interface books_data // 使用语法 : @interface Annotation_name,我们在这里声明了一个新注解。
{ // 注解声明和定义的开始
/*
在注解内部定义变量是可选的。
注解内部声明的变量数量将描述其形式。
*/
} // 注解声明和定义的结束
示例 1:
Java
CODEBLOCK_8f440995
输出
example of Marker Annotations.
> 由于此注解内部未声明任何变量,因此它被称为 标记注解。
示例 2:
Java
CODEBLOCK_a3de4c2a
输出
example of single value Annotation.
> 我们可以看到我们声明了一个 String 类型的变量 book_name,并且它是注解内部声明的唯一变量,因此,这是一个 单值注解 的示例。
示例 3: 我们将在我们的注解中声明以下变量:
> @interface books_data {
>
>
> String book_name();
>
>
> int book_price();
>
>
> String author();
>
>
> }
Java
CODEBLOCK_983191b3
输出
example of multi value Annotation.
> 我们在注解内部声明了多个变量,这是一个 多值注解 的示例。
现在让我们看看如何使用自定义注解,为此 让我们看看你可以如何使用你的自定义注解:
- 方法 1:默认注解
- 方法 2:自定义注解
专注于自定义注解,为了使用你的自定义注解,我们只需要使用注解名称(前面加上 @符号)来调用你的注解,并按有序的方式将声明变量的值传递给你在注解中声明的变量。
示例 1:
Jav