本篇文章为你整理了单元测试、反射、注解、动态代理(单元测试属于动态测试还是静态测试)的详细内容,包含有单元测试是动态测试 单元测试属于动态测试还是静态测试 单元测试 注入 软件单元测试中,动态测试的辅助软件工具有哪些? 单元测试、反射、注解、动态代理,希望能帮助你了解 单元测试、反射、注解、动态代理。
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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。