Java @Target 注释

javaobject oriented programmingprogramming更新于 2024/8/5 3:15:00

当我们开始学习 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 注释来注释另一个注释。请注意,注释只是告诉我们有关代码块的信息,它不会影响整个代码的工作。


相关文章