java反射中什么事注解_反射和注解是什么关系?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

都没说到点子上,别把注解想得太复杂,注解你可以理解为给某个东西加个标记,对注解本身仅仅只是起一个标记的作用,举个实际的例子

化学实验室有很多玻璃瓶装着的液体,为了区别他们,你在这些瓶子上贴了个标签,比如HCl(盐酸,好多年了,不知道是不是这么写),硫酸,石蕊试液...

注解就相当于你的标签

用代码表示

1.定义

public @interface 标签{

String name();

}

2.使用

@标签(name="盐酸")

public class A{

}

@标签(name="硫酸")

public class B{

}

...

注解的作用,就是一个标记

接下来说下反射和注解解析器

注解解析器基本上都是靠反射实现的,反射的作用是可以在类运行时动态获取类的所有属性和方法并且对其修改和使用

注解解析器获取标签name

Class c = A.class;

标签 _bq = c.getAnnotation(标签.class);//有点忘了是不是getAnnotation 方法,可以自己查下

_bq.name();//这里就拿到了标签的name了

再举个spring 解析@Autowired的例子(大概原理)

public class XXController{

@Autowired

private XXService service;

}

//解析Autowired 注入对象

Object controller;//传入的controller对象

Field[] fields = controller.getClass().getDeclaredFields();

for(Field field:fields){

Atuowired autowired = field.getAnnotation(Autowired.class);

if(autowired != null){//说明这个字段上有Autowired 注解

Object obj = applicationcontext.getBean(field.getType());//spring通过类型获取bean

field.setAccessble(true);

field.set(controller,obj);//注入对象

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值