如何在 Java 中创建自己的注解?
当我们开始学习 Java 时,我们经常会对像 @override 和 @inherited 这样的符号感到好奇。它们是一种特殊的标签,称为注解,可以应用于类、方法、字段、参数以及代码的其他元素。Java 提供了一些内置注解的支持,但是我们也允许创建自己的注解。在本文中,我们将学习如何创建和使用我们自己的自定义注解。
在 Java 中创建自定义注解
在创建我们自己的注解之前,让我们先熟悉一下 Java 中注解的基础知识。
注解
它们是 Java 的一个强大功能,允许我们向代码添加元数据。在这里,元数据是指有关特定代码块的其他信息。它们可以用于各种目的,包括文档、验证、测试、依赖注入等等。它们以“@”符号开头,并且可以具有可选的属性,这些属性提供其他信息。
Java 支持两种类型的注解:内置和自定义。内置注解具有预定义的含义和行为。
以下是一些内置注解
@Override:它表示方法覆盖了超类或接口中的另一个方法。
@Deprecated:用于将元素标记为已过时,以便在使用时生成警告。
@SuppressWarnings:抑制编译器警告。
到目前为止,我们已经介绍了注解及其一些预定义注解。现在,让我们讨论如何创建自定义注解。
创建我们自己的注解
第一步是使用 @interface 关键字声明它,后跟注解的名称。然后,下一步是添加一些描述新创建的注解的属性。属性可以是一些变量。
语法
@interface nameOfAnnotation { // declaration // Attributes } @nameOfAnnotation( values ) // initialization
示例 1
在下面的示例中,我们将创建一个名为“Author_details”的注解,以及它的两个必填属性“name”和“email”。
// declaring the annotation @interface Author_details { // attributes of annotation String name(); String email(); } // to use the annotation @Author_details(name = "Shriansh Kumar", email = "[email protected]") public class Example1 { public static void main(String[] args) { System.out.println("This is an example of Annotation"); } }
输出
This is an example of Annotation
示例 2
在下面的示例中,我们将声明一个名为“Author_details”的注解,以及它的两个默认属性“name”和“email”。要定义默认属性,我们需要使用“default”关键字。
// declaring the annotation @interface Author_details { // attributes of annotation String name() default "Shriansh Kumar"; String email() default "[email protected]"; } // to use the annotation @Author_details public class Example2 { public static void main(String[] args) { System.out.println("This is an example of Annotation"); } }
输出
This is an example of Annotation
示例 3
在下面的示例中,我们将创建一个并使用一个单值注解。
// declaring the annotation @interface Author_details { // attributes of annotation String name() default "Shriansh Kumar"; } // to use the annotation @Author_details public class Example3 { public static void main(String[] args) { System.out.println("This is an example of Annotation"); } }
输出
This is an example of Annotation
结论
注解只是告诉我们有关代码块的信息,它不会影响整个代码的工作方式。在本文中,我们首先学习了内置注解,在后面的部分,我们讨论了使用示例创建和使用自定义注解的过程。