暑期自学 Day 07 | Junit,反射,注解(一)
Junit 测试
- 使用步骤
- 定义两个注解 @Before, @After,分别在测试方法前申请资源以及在测试方法后释放资源。
- 定义测试类:xxxTest()
- 包名:xxx.test
- 在测试类中定义测试方法:可以独立运行
- testMethoda(); testMethodb();
- 返回值:void
- 参数列表:空参
- 使用 Assert 操作确认结果是否一致
反射
- 将类的各个组成部分封装成其他对象(反射机制)
- 解释:如将成员变量封装为 Field 对象,将构造方法封装为 Constructor 对象,将成员方法封装为 Method 对象。
- 好处:
- 在程序运行过程中,操作这些对象
- 解耦。提高程序的可扩展性。
Java 代码在计算机中经历的阶段
源代码阶段
- 写好的源文件通过 javac 编译,成功后生成字节码文件
- 源代码通过类加载器进入类对象阶段
类对象阶段
- 类对象通过创建对象进入下一个阶段
运行时阶段
- 新建该类的对象
获取 Class 对象的方式
- 源代码阶段:Class.forName(“全类名”)
- 注意:全类名是 包名.类名
- 多用于配置文件。读取文件,加载类。
- 类对象阶段:类名.class
- 多用于参数传递
- 运行时阶段:对象.getClass()
- 多用于对象的获取字节码的方式
注意:这些获取方式获取的 class 类对象都是同一个对象,因为程序运行时一个字节码文件只加载一次。
- 多用于对象的获取字节码的方式
- 源代码阶段:Class.forName(“全类名”)
使用 Class 对象
- 一些功能:
- 获取成员变量,成员方法,构造方法,类名
- 一些常用的方法:
- Field[] getFields(), Field getField(String name), Field[] getDeclaredFields(), Field getDeclaredField(StringName)
- 获取其他数据类型方法类似
- 一些功能:
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: