java 解析注解_全面解析Java注解

注解是在Java1.5版本之后就引用的。

概念:java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法

Java中常见的注解:jdk自带注解(包括@Override,@Deprecated,@Suppvisewarnings)。

@Override    指该方法覆盖了父类的方法

@Deprecated    指该方法已经过时了

@Suppvisewarnings    指忽略该警告    如:@SuppressWarnings("deprecation")//加这一个就能忽略了过时的那个警告        有一些比较严谨的开发团队,会不允许代码中有警告,这时候这个就起作用了。

常见的第三方的注解:

Spring(@Autowired,@Service,@Repository) Mybatis(@InsertProvider,@UpdateProvider,@Options)

注解的分类(按照运行机制分):

1.源码注解(注解只在源码中存在,编译成.class文件就不存在了)

2.编译时注解(在源码和.class文件都存在@Override,@Deprecated,@Suppvisewarnings,这些就是)

3.运行时注解(在运行阶段还起作用,甚至会影响运行逻辑的注解 @Autowired)

元注解:就是注解的注解

自定义注解

语法要求:

//以下四个为元注解

@Target({ElementType.METHOD,ElementType.TYPE})//注解作用域CONSTRUCTOR(构造方法声明),FIELD(字段声明),LOCAL_VARIABLE(局部变量声明),METHOD(方法声明),PACKAGE(包声明),PARAMETER(参数声明),TYPE(类,接口)

@Retention(RetentionPolicy.RUNTIME)    //生命周期(在源码或者在编译或者在运行时)

@Inherited    //允许子类继承

@Documented    //生成javadoc时会包含注解

//成员的类型是受限的,合法的类型包括原始类型(int,double,float)及String,Class,Annotation,Enumeration

public @interface Description{    //使用@interface关键字定义注解

//如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)

//注解类可以没有成员,没有成员的注解成为标识注解

String desc();    //成员变量以无参无异常方式声明

String author();

int age() default 18;    //可以用default为成员指定一个默认值

}

使用注解的语法:

@(=,=)

@Description(desc="I am eyeColor",author="Mooc boy",age=18)

public String eyeColor(){

return "red";

}

解析注解

概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值