如何使用自定义注解

2024-01-10 14:01:46

1、自定义注解需要用到那些元注解

1、@Retention

2、@Target

3、@Documented

4、@Inherited

2、元注解解释说明

@Retention:表示需要在什么级别保存该注释消息,可选参数如下:(RetentionPoicy

RetentionPolicy.SOURCE:停留在java源文件,编译器被丢掉

RetentionPolicy.CLASS:停留在class文件,但是会被jvm丢弃(默认)

RetentionPolicy.RUNTIME:注解在运行时仍然可用,因此可以通过反射机制读取

@Target:用于指定注解可以用于那些java元素,默认是任意元素,可用参数(ElementType

ElementType.CONSTRUCTOR:构造器声明

ElementType.FIELD:成员变量、对象、属性

ElementType.LOCAL_VARIABLE:局部变量声明

ElementType.METHOD:方法声明

ElementType.PACKAGE:包声明

ElementType.PARAMETER:参数声明(废弃)

ElementType.TYPE:类、接口(包括注解类型)或者是enum声明

@Documented :将注解包含在javadoc中,并且在生成的文档中显示该注解的信息

@Inherited:允许子类继承父类中的注解

代码示例:

创建自定义注解:

package com.example.strategy;


import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Inherited
public @interface Resources {
    /*
    *  根据实际业务场景来定义这个value
    * */
    String value() default "";
}

使用自定义注解:

@Resources(ResourcesConstant.EQUIP)
@Service
public class EquipStrategy implements ResourcesStrategy {
    @Override
    public ResourcesEntity getResourcesData(String type) {
        ResourcesEntity resources = new ResourcesEntity();
        return resources;
    }
}

文章来源:https://blog.csdn.net/weixin_43005845/article/details/135500260
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。