单元测试、反射、注解、动态代理(单元测试属于动态测试还是静态测试)

  本篇文章为你整理了单元测试、反射、注解、动态代理(单元测试属于动态测试还是静态测试)的详细内容,包含有单元测试是动态测试 单元测试属于动态测试还是静态测试 单元测试 注入 软件单元测试中,动态测试的辅助软件工具有哪些? 单元测试、反射、注解、动态代理,希望能帮助你了解 单元测试、反射、注解、动态代理。

  JUnit的两个要点:①必须是公开的,无参数,无返回值的方法 ②测试方法必须使用@Test注解标记

  

public class JUnitTest {

 

   @Test

   public void Testusername() {

   way way = new way();

   String rs = way.username("123");

   //JUnit提供的断言

   Assertions.assertEquals("登陆成功",rs);

  class way {

   public String username(String un) {

   if(un.equals("123")) {

   return "登陆成功";

   }else

   return "登陆失败";

  

 

  反射是在运行时获取类的字节码文件对象,然后可以解析类中的全部成分。

  反射的关键:得到编译以后的class文件对象。

  
利用反射获取构造器对象

  **反射的构造器可以用于创建对象 **

  

public class Reflect {

 

   public static void main(String[] args) throws Exception {

   //1.获取Class对象

   Class c1 = Student.class;

   //2.获取构造器对象

   Constructor student = c1.getDeclaredConstructor();

   //3.利用构造器对象来实例化对象

   Student stu = (Student) student.newInstance();

   //演示私有构造器如何获取

   Class c2 = Student.class;

   //1.有参构造器声明类型

   Constructor student2 = c2.getDeclaredConstructor(String.class,int.class);

   //2.破坏构造器私有性

   student2.setAccessible(true);

   student2.newInstance("jack",18);

  

 

  利用反射获取成员变量对象

  

public class Reflect {

 

   public static void main(String[] args) throws Exception {

   //1.获取Class对象

   Class c1 = Student.class;

   //2.获取Field对象

   Field field = c1.getDeclaredField("age");

   field.setAccessible(true);

   //3.给成员变量赋值

   Student student = new Student();

   field.set(student,18);

   //4.获取成员变量

   int result = (int) field.get(student);

   System.out.println(result);

  

 

  利用反射获取方法

  

public class Reflect {

 

   public static void main(String[] args) throws Exception {

   //1.获取Class对象

   Class c1 = Student.class;

   //2.获取Method对象

   Method name = c1.getDeclaredMethod("setName", String.class);

   //3.Method.invoke(对象)来调用方法

   Student student = new Student();

   name.invoke(student,"Jack");

  

 

  反射作用:绕过编译为集合添加数据

  说明:①编译成Class文件进入运行阶段后,泛型会自动擦除

  ​ ②反射是作用在运行时的技术,此时已经不存在泛型了

  

public class Reflect {

 

   public static void main(String[] args) throws Exception {

   ArrayList Integer list = new ArrayList ();

   list.add(1);

   list.add(2);

   //无法加入String类型的变量

   //list.add("Jack");

   //使用放射来强行加入String(运行时)

   Class d = ArrayList.class;

   Method add = d.getDeclaredMethod("add", Object.class);

   add.invoke(list,"Jack");

   for (Object integer : list) {

   System.out.println(integer);

  //运行结果:1 2 Jack

  

 

  反射作用:通用框架的底层原理

  说明:①可以在运行时得到一个类的全部成分

  ​ ②做Java高级框架

  ​ ③可以针对不同的对象,获取他们的信息

  对Java中类、方法、成员变量做标记,然后进行特殊处理

  自定义注解

  注解注解的注解(放在注解定义上方)

  常见的元注解有两个:

  以上就是单元测试、反射、注解、动态代理(单元测试属于动态测试还是静态测试)的详细内容,想要了解更多 单元测试、反射、注解、动态代理的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: