学习类博客1!

1.JavaSE中内置了三个标准注解,都是定义在java.lang中,它们是:

@Override:用于修饰子类的方法覆盖了父类中的方法;
@Deprecated:用于修饰已经过时了的方法,不推荐使用的方法;
@SuppressWarnnings:告诉java编译器禁止编译警告。
2.1 @Override

@Override很简单,只是一个标记,用于标注一个方法。它表示,被它标注的方法覆盖了父类的方法。如果一不小心,子类的方法名写错了,有了@Override之后,编译时会报错。也就是说被@Override标注的方法如果没有覆盖父类的方法,编译时报错。

2.2 @Deprecated

@Deprecated也是一个标记注解,用于修饰一个方法。它表示此方法不推荐使用。无论是继承、覆盖或直接使用此方法,编译器都会给出警告。

2.3 @SuppressWarnings

字面翻译就是抑制警告,它用于告诉编译器,对被标注的这句代码不要给出特定的警告。

3.1自定义注解
java提供元注解的目的就是让开发者自定义注解,元注解负责注解自定义注解。

@Target;
@Retention;
@Documented;
@Inherited。
3.1.1 @Target
@Target用来说明自定义注解可以用在什么地方,其ElementType取值有:
1. CONSTRUCTOR:用于描述构造器
2. FIELD:用于描述域
3. LOCAL_VARIABLE:用于描述局部变量
4. METHOD:用于描述方法
5. PACKAGE:用于描述包
6. PARAMETER:用于描述参数
7. TYPE:用于描述类、接口(包括注解类型) 或enum声明

使用示例:@Target(ElementType.FIELD)

3.1.2 @Retention

@Retention用来描述自定义注解的生命周期,其RetentionPoicy取值有:
1. SOURCE:在源文件中有效
2. CLASS:在class文件中有效
3. RUNTIME:在运行时有效

使用示例:@Retention(RetentionPolicy.RUNTIME)

3.1.3 @Documented

@Documented用于表示自定义注解可以被javadoc之类的工具文档化,没有成员。

使用示例:@Documented

3.1.4 @Inherited

@Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

@Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承annotation,方法并不从它所重载的方法继承annotation。

当@Inherited annotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这种继承性。如果我们使用java.lang.reflect去查询一个@Inherited annotation类型的annotation时,反射代码检查将展开工作:检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层。

使用示例:@Inherited

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值