暑期自学 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 对象

    • 一些功能:
      • 获取成员变量,成员方法,构造方法,类名
    • 一些常用的方法:
      • Field[] getFields(), Field getField(String name), Field[] getDeclaredFields(), Field getDeclaredField(StringName)
      • 获取其他数据类型方法类似
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

代码例子来点就更好了。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!