java 注解介绍

java注解是什么

java中的注解其实很简单,可以理解为给元素(类、属性、方法、等)打tag(标签),同时注解可以带一些属性,这些属性可以有默认值
在运行时(runtime),我们可以通过反射获取元素的注解,根据元素的注解以及注解的属性进行相应的操作。

java内置注解

内置注解我想大家都很熟悉了

  • @Override 声明这是一个方法重写
  • @Deprecated 声明这个方法已经过期
  • @SuppressWarnings 声明忽略警告

自定义注解

@Documented
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation{
    String author() default "unkown";
    int revision() default 1;
}
  • @Document 如果生命了@Document,表明声明这个注解的元素应该被包含近javadoc
  • @Target 声明这个注解可以声明在什么元素上
  • @Inherited 表明这个注解的属性是否可以被继承
  • @Retention 表明这个注解持续到什么阶段有效
    • SOURCE 源码
    • CLASS 字节码
    • RUNTIME 运行时

几个例子

@override注解用与声明该方法是方法重写,提供编译时的检查,所以适用元素是方法@Target(ElementType.METHOD)
有效阶段是源码阶段

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

@RequestParam spring mvc 中我们经常会使用的@RequestParam注解,基本原理就是在调用controller的方法时,检查参数,如果一个参数声明了@RequestParam, 那么就执行request.getParameter(“name”),获取参数并赋值给该参数。
@RequestParam 适用元素时方法参数@Target(ElementType.PARAMETER),有效阶段肯定时运行时@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
    //some property and default value
}

@Retention 是字节码的例子没想到。。
获取类注解信息

@MyAnnotation(author = "1286")
public class Boot {
    public static void main(String[] args) {
        for (Annotation annotation : Boot.class.getAnnotations()) {
            System.out.println(annotation);
        }
    }
}

@Documented
@Target(ElementType.TYPE)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {

    String author() default "unkown";

    int revision() default 1;
}
/*
输出
@MyAnnotation(author=1286, revision=1)
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值