单元测试、反射、注解、动态代理(Java基础)

单元测试

单元测试概述

针对Java方法的测试
Junit是使用Java语言实现的单元测试框架

单元测试快速入门

需求:使用单元测试进行业务方法预期结果、正确性测试
分析:
1.将JUnit的jar包导入到项目中
2.编写测试方法:该测试方法必须是公共的、无参数、无返回值的非静态方法
3.在测试方法上使用@Test注解:标注该方法是一个测试方法
4.在测试方法中完成被测试方法的预期正确性测试
5.选中测试方法,选择"JUnit运行",如果测试良好则是绿色。如测试失败,则是红色

单元测试常用注解
junit 4.xxxx版本
在这里插入图片描述
junit 5.xxxx版本
在这里插入图片描述

反射

反射概述

反射是在运行时获取类的字节码文件对象:然后可以解析类中的全部成分
反射关键:
第一步是先得到编译后的class对象,然后就可以得到Class的全部成分

HelloWorld.java -> javac -> helloWorld.class
Class c=HelloWorld.class

反射获取类对象

获取Class类对象的三种方式:
1.Class类的静态方法forName(“全类名”)
2.类名.class
3.对象.getclass()

      //方式1 常用
    Class c1 = Class.forName("com.itheima.reflect_.Student");
    System.out.println(c1);
    //方式2
    Class c2= Student.class;
    System.out.println(c2);
     //方式3
    Student student = new Student();
    Class c3=student.getClass();
    System.out.println(c3);

使用反射技术获取构造器对象并使用

前提是需要得到class对象
Class类中获取构造器的方法

方法 说明
Constructor<?>[ ] getConstructors() 返回所有构造器对象的数组(只获取public)
Constructor<?>[ ] getDeclaredConstructors() 返回所有构造器对象的数组,存在能取到
Constructor[ ] getConstructor(Class<?>… parametertypes) 返回单个构造器对象(只获取public)
Constructor[ ] getDeclaredConstructor(Class<?>… parametertypes) 返回单个构造器对象,存在能取到

获取构造器的作用依然是初始化一个对象返回

Constructor类中用于创建对象的方法

方法 说明
T newInstance(Object… initargs) 根据指定的构造器创建对象
public void setAccessible(boolean flag) 设置为true,表示取消访问检查,进行暴力反射
        //1.获取类对象
        Class c = Student.class;
        //2.定位单个构造器对象
        Constructor cons = c.getDeclaredConstructor();
       // System.out.println(cons.getName() + "->" + cons.getParameterCount());

        //如遇到私有构造器,可以进行暴力反射
        //cons.setAccessible(true);

        Student student = (Student) cons.newInstance();
        System.out.println(student);

        //定位2个参数构造器对象
		Constructor cons1 = c.getDeclaredConstructor(String.class, int.class);
  // System.out.println(cons1.getName() + "->" + cons1.getParameterCount());

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值