慕课网《全面解析Java注解》教程总结

1 篇文章 0 订阅
1 篇文章 0 订阅

听了慕课网中《全面解析Java注解》教程,本文是对该教程的总结与回顾。

一、定义

Java提供了一种原程序中的元素关联任务信息和任何元素的途径与方法。乍一看这个概念,我反正是没看懂,不知道您是否看懂了。但是@override这个您总认识吧,这个就是注解。

二、分类

本教程对Java注解是按以下两个维度进行分类的:

第一类:按运行机制分类
  1. 源码注解:

    这类注解只存在于源码之中,编译后的Class文件里不存在
    
  2. 编译时注解:

    这类注解存在于源码与Class文件中
    
  3. 运行时注解:

    在运行阶段还起作用的注解,比较典型的是Spring中的@Autowired.
    
    **特别注意:只有第3种注解才会在反射的时候获取到**
    
第二类:按来源分类
  1. JDK本身自带的,比如以下的注解
    • @Override:重写一个方法
    • @Deprecated:标示某个方法是过时的
    • @Suppvisewarnings:忽略注解的提示
  2. 第三方的注解,比如Spring中的注解
  3. 自定义注解

三、自定义注解

1.语法定义
  • 使用@interface定义(不理解?我们是不是用class这个关键字定义类呢?)
  • 成员的类型是受限制的,合法的类型只包含以下的几类:
    • 基本类型如int ,String 等
    • Class,Annotation,Enumeration等
  • 成员必须以无参无异常的方式进行声明
  • 如果只有一个成员需要写成value
2.元注解

元注解,是给注解的注解,包含有以下的四个
1. @Target:标明该注解的使用范围,包含以下的几个范围:

 * 构造方法声明:constructor
 * 字段声明:Field
 * 局部变量声明:Local_variable
 * 方法声明:Method
 * 包声明:Method
 * 参数声明:parameter
 * 类接口:type

2. @Retention:注解的生命周期,包含有以下的几类

1.  只在源码显示,编译后丢失
2.  编译时会记录到Class中,运行时丢失
3.  运行时存在,可以通过反射获取到

3. @Inherited :此为标识符,标识该注解是否可以被继承

    注意:只有Target中含有Type,即类类型的时候才会起作用。

4. @Documented:此为标识符,标识该类是否出现在Javadoc中

附:自定义注解的示例
自定义注解语法定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值