栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

单元测试 反射 注解 动态代理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单元测试 反射 注解 动态代理

 

 

 我们搞一个单元测试的好处就在于

它可以一键进行成千上百个类同时进行测试

 就算有一千个测试方法 我们也可以一键就跑完

因为这些测试方法是包含在一个测试类当中的

 

反射:

 

 

如: 拿到class文件的三种方式——

 反射获取构造器对象:

 

反射获取成员变量:

 

 

 

反射获取方法对象: 

 拿到所有的方法对象:

 

由于这是反射 它可以暴力打开权限:

   即使eat是私有的方法  反射可以用 如图的方式:

m这里是暴力打开的是第一个eat方法权限

 下面这个是m2反射:

暴力反射第二个有参方法eat  即使是私有的也可以访问

 

总结:invoke方法中obj表示一个对象  args表示调用方法的参数(如果没有则不用写) 

———————————————————————————————————————————

反射的作用:

——————————————————————————————————————————  

我们可以通过反射直接进行添加黑马这个字符串 

即使它的泛型是整形:如上图所示,,,,,

1.先用lists这个对象进行调用getClass()调用这个对象对应的class文件

2.拿到方法

3.invoke触发lists这个集合对象中的add方法执行。。。。。。。。。。

因为反射会擦拭这个泛型  所以可以直接添加字符串

——————————————————————————————————————————  

拿到两者的class文件进行比较是否相同和地址是否相同

 

由此我们可以得出一个结论:

无论泛型是什么 只要是同一个类 那么它的class文件一定是相同的

故反射擦拭了泛型,,,,,,,, 

 

模块地址信息:

1.创建一个学生类

 2.创建一个老师类

 3.设计一通用的框架类:这个通用的框架可以保存任意的对象

实现了不同的对象都可以进来使用这一个框架。。。

 4.进行测试:

注解:

 

 

 

元注解:

我们这里规定只能注解方法和成员变量。。。。。。

 

 

 

注解Bookk:

使用元注解@Target表示可以注解哪些内容  TYPE表示类型  METHOD表示可注解的方法

@Retention表示注解的存活周期时长

 使用注解的类:BookStore:

测试类: 使用@Test测试:

 

 只有当有注解@Test时才可执行方法

如何实现这个上述愿望?如图下:自行自己设计一个测试类框架

 动态代理:

重点:先初步认识一下 后续细讲。。。。。。。。。。。。

 

这里记录一下统计时间时的方法______:

当我们发现最后一条计时时间的语句前面已经有了return语句

那么我们只能把这个语句放到finally语句中去  

finally语句中的语句表示我还没执行呢 返回语句原地不动 等finally执行完之后再执行

 问题:

 产生代理:

 1.创建一个接口

2.创建一个类实现这个接口,这个类就是作为业务对象

创建一个测试类

 

3.创建一个代理类 ProxyUtil,作为代理对象

 这里的参数我们通常是使用接口来写 相当于一种多态的形式。。

以后可以接任何通过实现接口创建的类对象

——————

我们这里业务对象的类型是什么,我们所创建的代理对象的类型就应该是什么。。。。

直接强制类型转化即可

 

  如何搞一个代理对象:

 

 好处:省略节省了大量的时间分析的代码,让前面的业务实现类的代码更加简洁

 ——————————————————————————————————————

改成泛型可接收任何类型

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号