gpt4 book ai didi

java - Java注解ElementType常量是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 20:30:45 31 4
gpt4 key购买 nike

java.lang.annotation.ElementType :

一种程序元素类型。这种枚举类型的常量提供了 Java 程序中声明元素的简单分类。这些常量与 Target 一起使用。元注释类型来指定使用注释类型的合法位置。

有以下常量:

  • ANNOTATION_TYPE - 注释类型声明
  • CONSTRUCTOR - 构造函数声明
  • FIELD - 字段声明(包括枚举常量)
  • LOCAL_VARIABLE - 局部变量声明
  • METHOD - 方法声明
  • PACKAGE - 包声明
  • PARAMETER - 参数声明
  • TYPE - 类、接口(interface)(包括注解类型)或枚举声明

有人能解释一下它们各自是什么吗(在实际代码中它们会被注释的地方)吗?

最佳答案

假设您指定 ElementType 的注释称为 YourAnnotation:

  • ANNOTATION_TYPE - 注释类型声明。 注意:这适用于其他注释

    @YourAnnotation
    public @interface AnotherAnnotation {..}
  • CONSTRUCTOR - 构造函数声明

    public class SomeClass {
    @YourAnnotation
    public SomeClass() {..}
    }
  • FIELD - 字段声明(包括枚举常量)

    @YourAnnotation
    private String someField;
  • LOCAL_VARIABLE - 局部变量声明。 注意:这不能在运行时读取,所以它只用于编译时的东西,比如 @SuppressWarnings 注释。

    public void someMethod() {
    @YourAnnotation int a = 0;
    }
  • METHOD - 方法声明

    @YourAnnotation
    public void someMethod() {..}
  • PACKAGE - 包声明。 注意:这只能在package-info.java中使用。

    @YourAnnotation
    package org.yourcompany.somepackage;
  • PARAMETER - 参数声明

    public void someMethod(@YourAnnotation param) {..}
  • TYPE - 类、接口(interface)(包括注解类型)或枚举声明

    @YourAnnotation
    public class SomeClass {..}

您可以为给定的注解指定多个 ElementType。例如:

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})

关于java - Java注解ElementType常量是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3550292/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com