注解

1.什么元注解?以及自定义注解需要的配置?
元注解就是负责注解其他注解的,或自定义注解时需要配置的相关信息。元注解有4个,分别是@Target、@Retention、@Documented、@Inherited

1、@Target 标注了自定义注解所修饰的目标
@Target(ElementType.TYPE) //作用于接口和类、枚举、和注解中
ElementType.FIELD //作用于字段和枚举的常量
ElementType.METHOD//作用于方法上
ElementType.PARAMETER//作用于方法参数上
ElementType.CONSTRUCTOR//作用于构造函数上
ElementType.LOCAL_VARIABLE//作用于局部变量上
ElementType.ANNOTATION_TYPE//作用于注解上
ElementType.PACKAGE//作用于包上面

2、@Retention 注解的保留策略
 @Retention(RetentionPolicy.SOURCE)//注解仅存在于源码中,在class字节码文件中不包含
 RetentionPolicy.CLASS //默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得。
 RetentionPolicy.RUNTIME //注解会在class字节码文件中存在,在运行时通过反射获得

3、@Documented 注解是否包含在javadoc中

4、Inherited 注解可以被继承

例子: 自定义的注解
@Documented
@Inherited
@Target({ ElementType.FIELD, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Init
{
public String value() default “”;
}

2.注解中的值是怎样映射的?
1、获取类上面的注解:
例如:
@AnnotationTest02(getUserName=“zhangsan”)
public class AnnotationTest03 {
}
AnnotationTest02 anno = AnnotationTest03.class.getAnnotation(AnnotationTest02.class);
用类的class对象的getAnnotation(注解.class)方法来获取注解

 **Method[] met = anno.annotationType().getDeclaredMethods();  
 通过注解来获取类中的方法
 遍历方法每个方法为me,me.setAccessible(true);
 
 System.out.println(me.invoke(anno, null));
 获取注解中的值**  

2、获取方法上的注解:
先通过类名.class获取class对象再获取该类中的方法并存储到方法列表中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值