实现自定义注解--如此简单

要实现自定义注解,你需要按照以下步骤进行操作:

  1. 使用 @interface 关键字创建注解。
public @interface MyAnnotation {
    
    
    // 注解属性
}
  1. 在注解中添加属性,通过元素名和类型定义,可以设置默认值。
public @interface MyAnnotation {
    
    
    String value() default "";
    int number() default 0;
    boolean flag() default false;
}
  1. (可选)如果你希望限制注解的使用范围,可以使用元注解来标注注解本身。例如,使用 @Target 来指定注解可以应用的目标(类、方法、字段等),使用 @Retention 来指定注解在运行时保留。 使用 @Target 元注解来指定注解可以应用的目标。可以选择以下目标之一或多个:
  • ElementType.TYPE:类、接口、枚举等。
  • ElementType.FIELD:字段、枚举常量。
  • ElementType.METHOD:方法。
  • ElementType.PARAMETER:方法参数。
  • ElementType.CONSTRUCTOR:构造函数。
  • ElementType.LOCAL_VARIABLE:局部变量。
  • ElementType.ANNOTATION_TYPE:注解。
  • ElementType.PACKAGE:包。

例如,如果你希望注解仅能应用在方法上,可以这样定义注解:

import java.lang.annotation.*;

@Target(ElementType.METHOD)
public @interface MyAnnotation {
    
    
    // 注解属性
}

使用 @Retention 元注解来指定注解在运行时保留。可以选择以下保留策略之一:

  • RetentionPolicy.SOURCE:注解仅保留在源代码级别,编译后不会包含在字节码中。
  • RetentionPolicy.CLASS:注解保留在字节码中,运行时不可获取(默认值)。
  • RetentionPolicy.RUNTIME:注解保留在字节码中,运行时可通过反射等机制获取。

例如,如果你希望注解在运行时保留,可以这样定义注解:

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    
    
    // 注解属性
}

通过使用元注解,你能够更加精确地控制自定义注解的使用范围和保留策略,以满足实际需求。根据具体情况,你可以灵活选择目标和保留策略,并结合注解处理器来处理注解,实现相应的功能和逻辑。

import java.lang.annotation.*;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    
    
    // 注解属性
}
  1. 在代码中使用自定义注解,可以通过 @MyAnnotation 来引用,并为属性赋值。
@MyAnnotation(value = "测试", number = 123, flag = true)
public class MyClass {
    
    
    // ...
}

猜你喜欢

转载自blog.csdn.net/m0_67982986/article/details/133683843
今日推荐