java中的注解

什么是注解呢?

很多人在理解注解的时候会容易和注释混淆,那么两者到底有什么区别呢?对于注释来说,这一段语句不会参与实际的程序运算的,只能对程序进行解释说明。而注解呢?也是对某一些语句进行额外的补充,结合反射的使用呢,很有可能会对原有程序造成一定影响的。

注解的写法是什么样的呢?

一般来说注解是 @interface 类型的,可以理解为一种特殊的接口类型,这种类型也是不能有具体的实现方法的

public @interface overRide(){
	String name;
}

元注解是什么?

元注解是对注解的注解共有三种

1、@Retention

用于标识这个注解在什么时期内生效,有三种,RetenionPolicy.CLASS :代表编译器注解也就是仅仅在编译器生效,RetenionPolicy.RUNTIME:代表运行期生效,RetenionPolicy.SOURCE ,这种仅仅存在于源代码时期,编译期就不存在了。

2、@Target

用于定义注解的使用范围,如:METHOD:代表该注解只能在方法上使用,TYPE:代表该注解只能在类或者接口上使用,
CONSTRUCTOR:代表该注解只能在构造方法上使用,FIELD:代表该注解只能在属性上使用,LOCAL_VARIABLE:代表该注解只能在局部变量上使用,PARAMETER :代表该注解只能在参数上使用

3、@Documented

这个仅仅是用于生成文档说明的。

4、@Inherited

表明该注解有父子关系,也就是会被继承。如果父类使用了该注解,子类也会自动使用。

5、@Result

用于表明该注解可以在同一个地方无限次的使用。也就是对于该注解的使用次数不做限制。

为啥需要注解呢?

对于一些程序来说,会有一些特殊的信息需要进行关联处理,但是呢,又不是所有的地方都会关联,因此设计出了注解,对某些地方进行一些特殊的解释或者处理。也就是用于描述或者是配置。

注解的原理?

注解是基于java反射,对某些代码进行了动态代理的结果。可以动态的生成代理类,调用AnnotationInvocationHandler 的invoke 方法,来实现具体的逻辑。

注解的使用

注解一般都会在方法的过滤器,或者拦截器中进行处理,为这些方法提供一些必要的参数从而进行逻辑处理。
不对程序起作用,仅仅是做一些代码检查之类的处理,这种也是可以的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值