Java注解

1、四大内置注解

(1)@Override

注解用于标识方法重写,例如当前类中重写tostring()方法

(2)@Deprecated

注解用于标识方法已过时

(3)@SuppressWarings

注解用于抑制编译器警告,直白的讲就是消除Eclipse上那
条黄色警告线,但编译器里关于这条警告的信息还在。

(4)@SafeVarargs

抑制堆污染警告(单独警告),直白的讲就是使用泛型和
可变参数搭配使用将会产生的编译器警告,可以使用@SuppressWarnings消除警告,后来在Java7引入了新的
注解,就是@SafeVarargs,如果开发人员确信某个使用了
可变参数的方法,在与泛型类一起使用时不会出现类型
安全问题,就可以用这个注解进行声明,这样编译器就不会报警告。

2、四大元注解

元注解的作用就是用于定义其他注解,是由JAVA为我们提供的,
不能更改,从JAVA5.0开始一共为我们提供了四个元注解。

(1)@Target

@Target作用

用于描述注解的使用范围,也就是说使用了@Target
去定义一个注解,那么可以决定定义好的注解能用在什么地方

@Target取值

@Target的取值使用ElementType,ElementType的相关说明
可以通过JDK文档查询,也可以直接查看其源码

  1. CONSTRUCTOR:用于描述构造器
  2. FIELD:用于描述域
  3. LOCAL_VARIABLE:用于描述局部变量
  4. METHOD:用于描述方法
  5. PACKAGE:用于描述包
  6. PARAMETER:用于描述参数
  7. TYPE:用于描述类、接口(包括注解类型) 或enum声明

(2)@Retention

@Retention作用

用于描述注解的生命周期,也就是说这个注解在什么范围内有效,注解的生命周期和三个阶段有关:源代码阶段、CLASS文件中有效、运行时有效,故其取值也就三个值,分别代表着三个阶段

@Retention取值

@Retention的取值适用RetentionPoicy,RetentionPoicy的相关说明可以通过JDK文档查询,也可以通过查看源码

  1. SOURCE:在源文件中有效(即源文件保留)
  2. CLASS:在class文件中有效(即class保留)
  3. RUNTIME:在运行时有效(即运行时保留)

(3)@Documented

@Documented作用

使用@Documented定义后的注解,在该注解使用后,如果导出API文档,会将该注解相关的信息可以被例如javadoc此类的工具文档化。
Documented是一个标记注解,没有成员。

(4)@Inherited

@Inherited作用

使用@Inherited定义的注解具备继承性
假设一个注解在定义时,使用了@Inherited,然后该注解在一个类上使用,如果这个类有子类,那么通过反射我们可以从类的子类上获取到同样的注解

3、自定义注解

//@Target:标记一个注解,可以标记代码什么位置
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)//标记一个注解的生命周期
@Documented//标记一个注解,是否可以生成到API文档
@Inherited//标记一个注解是否能被继承,标记了,就可以子类中继承到
public @interface Vip {
	int a() default 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值