Java注解的基本使用

1,注解一般和反射联合使用
2,jdk自带注解有三个:@Override、@Deprecated、@SuppressWarnings
3,定义注解需要使用元注解。
4,元注解:只能用来定义注解,有四个:
@Target代表作用域(在哪里调用)

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** Field declaration (includes enum constants) */
    FIELD,

    /** Method declaration */
    METHOD,

    /** Formal parameter declaration */
    PARAMETER,

    /** Constructor declaration */
    CONSTRUCTOR,

    /** Local variable declaration */
    LOCAL_VARIABLE,

    /** Annotation type declaration */
    ANNOTATION_TYPE,

    /** Package declaration */
    PACKAGE,

    /**
     * Type parameter declaration
     *
     * @since 1.8
     */
    TYPE_PARAMETER,

    /**
     * Use of a type
     *
     * @since 1.8
     */
    TYPE_USE
}

@Retention代表存在的生命期(源码,编译期,运行时)

public enum RetentionPolicy {
    /**
     * Annotations are to be discarded by the compiler.被编译器抛弃
     */
    SOURCE,

    /**
     * Annotations are to be recorded in the class file by the compiler
     * but need not be retained by the VM at run time.  This is the default
     * behavior.被JVM抛弃
     */
    CLASS,

    /**
     * Annotations are to be recorded in the class file by the compiler and
     * retained by the VM at run time, so they may be read reflectively.
     * 运行时存在可以被反射读取
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}

@Documented(是否包含在javadoc)、
@Inherited(是否允许子类继承父类的注解)
5,注解的属性类型有限制,只能是 String,Class,Annotation,Enumeration其中的类型。

举例:
@Target(ElementTYpe.METHOD,ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface GET{
String desc();
String url();
}

让调用生效:
使用反射读取对应类的作用域,比如我们例子里的函数,反射读取出调用传入的值,编写逻辑即可。

定义好之后,就可以根据作用域来调用了。
@GET(desc=“i’m desc’,url=“https://www.api.com”)
public String apiQueryListData(){…}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值