Java复习——注解

注解分类:

1.普通注解
2.元注解
3.自定义注解
一、普通注解

:修饰java代码的注解

JDK预定义的普通注解作用
@Override表示继承和改写
@FunctionInterface声明功能性接口
@Deprecated表示废弃
@SuppressWarnings表示压制警告
@SafeVarargs不会对不定项参数做危险操作自带注解

@Override:

1.修饰方法,检查该方法是父类的方法
2.强制该函数代码必须符合父类中该方法的定义
3.避免代码错误

@FunctionInterface
声明功能性接口,比如判断java9新特性的函数式接口。

@Deprecated
1.修饰类/类的元素/包
2.标注为废除,建议不再使用这个类/元素/包

@SuppressWarnings
1.可以修饰变量/方法/构造函数/类等
2.压制各种不同类型的警告信息,使得编译器不显示警告
3.各种不同类型是叠加,如修饰类的警告类型,和修饰方法的警告类型,对于方法来说,是叠加的。
4.警告类型名称是编译器/IDE工具自己定的,Java规范没有强制要求哪些名称。编译器厂商需要自行协商,保证同名警告类型在各个编译器.上一样工作。

@SafeVarargs
不会对不定项参数做危险操作自带注解

二、元注解
JDK预定义的元注解作用
@Target设置目标范围
@Retention设置保持性
@Documented修饰文档
@Inherited注解继承
@Repeatable可以重复修饰元注解

@Target
限定目标注解作用于什么位置@Target({ElementType.METHOD})

  • ElementType.ANNOTATION_ _TYPE (注:修饰注解)
  • ElementType.CONSTRUCTO
  • ElementType.FIELD
  • ElementType.LOCAL _VARIABLE .
  • ElementType.METHOD
  • ElementType.PACKAGE
  • ElementType.PARAMETER
  • ElementType.TYPE (注:任何类型,即。上面的的类型都可以修饰)

@Retention

示例 : @Retention(RetentionPolicy.RUNTIME)

  • 这个注解用来修饰其他注解的存在范围
  • RetentionPolicy.SOURCE注解仅存在源码,不在class 文件。
  • RetentionPolicy.CLASS这是默认的注解保留策略。注解存在于.class文件,但是不能被JVM加载。
  • RetentionPolicy.RUNTIME这种策略下,注解可以被JVM运行时访问到。通常情况下,可以结合反射来做一些事情。

@Documented

  • 指明这个注解可以被Javadoc工具解析,形成帮助文档

@Inherited

  • 让一个类和它的子类都包含某个注解
  • 普通的 注解没有继承功能

@Repeatable

  • 自JDK1.8引入
  • 表示被修饰的注解可以重复应用标注,-需要定义注解和容器注解
三、自定义注解

A. 自定义注解定义: 扩展java.lang.annotation.Annotation注解接口
B. 注解可以包括的类型:

1.8种 基本类型(int/ short/ long/ float/ double/byte/ char/boolean)
2.String
3.Class
4.enum类型,
5.注解类型
6.由前面类型组成的数组

C. 注解使用的位置
1.@Target可以限定位置
2.允许的位置



接口
方法
构造器
成员变量
局部变量
形参变量
类型参数

参考:陈良育老师的java程序设计https://www.icourse163.org/course/ECNU-1206500807?tid=1206823217

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天一个秃顶小技巧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值