如何使用自定义注解
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!