Java @Target 注释
当我们开始学习 Java 时,我们经常对代码块中写的 @override 和 @inherited 等符号感到疑惑。它们是一种特殊的标签,称为注释,可应用于类、方法、字段、参数和代码的其他元素。@Target 注释是元注释类型之一,它指定定义的注释类型适用于哪个代码块元素。不要被这些术语弄糊涂了,我们将在本文中消除所有疑虑和困惑。
Java 的 @Target 注释
我们需要了解的第一件事是注释是什么以及它们在 Java 中的用途是什么。
注释
它们是 Java 的一项强大功能,允许我们向代码添加元数据。在这里,术语元数据是指有关特定代码块的附加信息。它们可用于各种目的,包括文档、验证、测试、依赖注入等等。它们前面有"@"符号,可以具有提供附加信息的可选属性。
Java 支持两种类型的注释:内置和自定义。内置注释具有预定义的含义和行为。
以下是一些内置注释 -
@Override - 它表示方法覆盖了超类或接口中的另一个方法。
@Deprecated - 它用于将元素标记为过时,以便在使用时生成警告。
@SuppressWarnings - 抑制编译器警告。
到目前为止,我们已经了解了注释及其一些预定义的注释。现在,让我们讨论如何创建自定义注释。
创建我们自己的注释
第一步是使用 @interface 关键字及其后的注释名称进行声明。然后,下一步是添加一些描述新创建的注释的属性。属性可以是一些变量。
语法
@interface nameOfAnnotation { // 声明 // 属性 } @nameOfAnnotation( values ) // 初始化
示例
在下面的例子中,我们将创建一个名为"Author_details"的注释,以及它的两个强制属性"name"和"email"。
// 声明注释 @interface Author_details { // 注释的属性 String name(); String email(); } // 使用注释 @Author_details(name = "Shriansh Kumar", email = "shriansh.kumar@tp.com") public class Example1 { public static void main(String[] args) { System.out.println("This is an example of Annotation"); } }
输出
This is an example of Annotation
如何使用 @Target 注释注释
有时,用户创建的注释可能无法传达其全部目的。对于这种情况,Java 提供了四个元注释,即 @Documentation、@Target、@Retention 和 @Inherited,以注释的形式向该用户定义的注释提供另一个元数据。它将帮助编译器在编译期间强制执行所需的功能。
@Target 注释将 java.lang.annotation.ElementType 枚举中的值数组作为其参数。ElementType 枚举定义了可以在 Java 中注释的元素的可能类型。这些值是 −
ANNOTATION_TYPE − 注释类型声明
CONSTRUCTOR − 构造函数声明
FIELD − 字段声明
LOCAL_VARIABLE − 局部变量声明
METHOD − 方法声明
PACKAGE − 包声明
PARAMETER − 参数声明
TYPE − 类、接口、枚举或记录声明
TYPE_PARAMETER − 类型参数声明
TYPE_USE − 类型的使用
语法
@Target({ElementType.nameOfanyValues}) @interface nameOfCustomAnnotation { // 注释的属性在此处 }
示例
在此示例中,我们将使用 @Target 创建一个自定义注释,其值为"TYPE",这意味着此注释适用于类、接口和枚举。
import java.lang.annotation.*; // 声明注释 @Target({ElementType.TYPE}) @interface Author_details { // 注释的属性 String name() default "Shriansh Kumar"; String email() default "shriansh.kumar@tp.com"; } // 使用注解 @Author_details public class Example2 { public static void main(String[] args) { System.out.println("使用 @Target 注释注解"); } }
输出
使用 @Target 注释注解
结论
在本文中,我们首先学习了内置注解,在后面的部分中,我们借助示例程序讨论了创建和使用自定义注解的过程。我们还发现了使用 @Target 注释来注释另一个注释。请注意,注释只是告诉我们有关代码块的信息,它不会影响整个代码的工作。