注解怎么实现?

java反射的理解以及从注解中获取到值,并赋值给类中的属性

要了解注解先知道反射,往下看

开始反射
//获取 类
Class dogClass = Class.forName("com.ertiao.dog");

//生成 构造器 获取构造方法的结构 可以是有参构造方法和无参构造方法 
//无参构造方法
 Constructor<dog> dogConstructor =dogClass.getConstructor(); 
 //有参构造方法
 Constructor<dog> dogConstructor =dogClass.getConstructor(String.class,int.class);

//生成 dog实例对象 (无参构造方法生成对象,想有参的话调用有参的构造器生成)
Dog dog = dogConstructor.newInstance();

//获取类中的私有方法  	(只是包含当前类的方法)
Method[] methods = dogClass.getDeclaredMethods();

//获取类中的私有属性	(包括私有的属性)
Field[] fields = dogClass.getDeclaredFields();

//开启暴力反射对私有属性进行赋值 可以对私有的属性和方法使用
field.setAccessible(true);

//属性进行赋值
field.set(对象,值)

//获取注解对象
field.getAnnoation(注解.class)

//总结小例子 获取 类 中 属性 的注解
解释:
注解.class 是我们自定义的注解 如果不清楚怎么自定义注解可以搜索 自定义注解
field  	当前属性加入了自定义注解 才会对这个属性进行赋值 
filed 	只是一个别名 实际代表的是 类中的加了自定义注解的属性

前置条件:
1、需要有自定义注解
2、在使用的地方加上自定义注解

步骤:
1、遍历类中所有的属性
2、检查属性上有没有该注解
for(Field field: fields){
	  //获取属性上的注解
	 注解 annoation=field.getAnnoation(注解.class)
	 //判断属性中有没有该注解
	if(annoation!=null){
		//获取注解中的值
		String value=annoation.value();
		//对dog对象的filed属性进行赋值 值为value 
		filed.set(dog,value)
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值